OyemeЯ читал эту книгу. Даже цитаты приводил из неё как то всуе. Вопрос не
как написать чистый код, а
зачем его делать "чистым". Если заглянуть глубже того, что я описал. Для самолюбования... я давно вырос из этого. Для других - не вижу смысла. Почему я должен пыхтеть для них, а не они, если хотят со мной работать?
Не, я не пишу в одну строку в одном файле, ты прекрасно знаешь. Я всегда за оптимальную середину. Кидаться в крайности, пожертвовать собственным комфортом ради... чего? Ради того, чтобы блеснуть знаниями? Я лучше быстро напишу код, а оставшееся время потрачу на развлечения. Те же путешествия)). Чем сидеть ночами и пытаться внедрить всяческие новые технологии плана PSR-7 и иже с ними.
Так что "кодерские понты" на любителя. Это не плохо, но это вовсе не серебряная пуля. Код и так отлично работает, если писать аккуратно.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 25.08.2016 - 14:02) |
Oyeme Я читал эту книгу. Даже цитаты приводил из неё как то всуе. Вопрос не как написать чистый код, а зачем его делать "чистым". Если заглянуть глубже того, что я описал. Для самолюбования... я давно вырос из этого. Для других - не вижу смысла. Почему я должен пыхтеть для них, а не они, если хотят со мной работать?
Не, я не пишу в одну строку в одном файле, ты прекрасно знаешь. Я всегда за оптимальную середину. Кидаться в крайности, пожертвовать собственным комфортом ради... чего? Ради того, чтобы блеснуть знаниями? Я лучше быстро напишу код, а оставшееся время потрачу на развлечения. Те же путешествия)). Чем сидеть ночами и пытаться внедить всяческие новые технологии плфна PSR-7 и иже с ними.
Так что "кодерские понты" на любителя. Это не плохо, но это вовсе не серебряная пуля. Код и так отлично работает, если писать аккуратно. |
Но на практике Вы тратите больше времени сначала,а потом Вы экономите в разы время.
Это тоже самое что создавать машины.Красиво,надежно,чисто и понятно для всех.
Цитата (Oyeme @ 25.08.2016 - 14:07) |
Но на практике Вы тратите больше времени сначала,а потом Вы экономите в разы время. |
В том и дело, что зачастую на практике всё совсем не так, как написано в книгах.
Вот пример с тем же ТТУК. Да, повторы кода. Да, при глобальном изменении больше работы. Но фишка в том, что повторы не так страшны, хотя и объявлены антипаттерном. И копипаста не так страшна. И на поверку это оказывается быстрее и проще, чем проектировать целостную систему. И обслуживать проще. Не нужно оглядываться на связанные места, меньше документации, даже тестов меньше нужно на порядок. А глобальные изменения нужны не так часто. Гораздо чаще приходится менять локальные участки.
Почти все модные книги написаны вовсе не веб-программистами. И принципы там описаны применительно к цельным программам. Десктопным. А веб, это на 90% набор небольших страниц. Читай - программ.
Фреймворки да, там оно к месту. Потому что фреймворк по сути и есть одна целостная программа. А что касается индивидуальных веб-проектов, то их тщательное проектирвание - пустая трата времени. Нельзя всё предусмотреть, слишком это непостоянно.
Есть общая схема. Руль, педали, колеса (не всегда четыре кстати). А где и какой использовать двигатель, какой сделать салон, какую подвеску - все применительно к потребностям. Спроектируешь красивый спорт-кар, а заказчик в лес за грибами захочет. И что?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата |
Фреймворки да, там оно к месту. Потому что фреймворк по сути и есть одна целостная программа. А что касается индивидуальных веб-проектов, то их тщательное проектирвание - пустая трата времени. Нельзя всё предусмотреть, слишком это непостоянно. |
Все верно.
Если тебя плятат за то чтобы ты писал красиво то это одно, а если "лишь бы работало",то пишешь лишь бы работало.
Цитата (Oyeme @ 25.08.2016 - 14:44) |
Если тебя плятат за то чтобы ты писал красиво то это одно, а если "лишь бы работало",то пишешь лишь бы работало. |
Мне платят (как впрочем и всем) за то, чтобы работало. А "красиво", это дело субъективное. Сколько людей, столько и мнений.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
twin, в ходе рефакторинга с применением "ненужных" модных штук, обычно всплывает масса ошибок, которые раньше просто были невидны.
twin
Даже не могу передать насколько приятно тебя послушать, и даже не потому что согласен с тобой, а потому что это у тебя настоящий научно-исследовательский стиль.
Oyeme
Цитата |
Это тоже самое что создавать машины.Красиво,надежно,чисто и понятно для всех. |
Именно так.
Вот Rolls Royce - вручную собирает команда из 60 человек
Вот AUDI конвеерной сборки
Обе машины отличные. Обе для своего сигмента рынка. Так и в программировании. Есть штучные проекты - со своими особенностями и программистами (5-10% рынка), есть созданные на продажу - собранные с фреймворками, CMS (сответсвенно 90-95% рынка).
Избитый спор.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Цитата (Ron @ 25.08.2016 - 18:09) |
twin, в ходе рефакторинга с применением "ненужных" модных штук, обычно всплывает масса ошибок, которые раньше просто были невидны. |
Рефакторинг рефаторингу - рознь.
Вот статья, безумно мне нравится.
Да, у Маркуса внутри адъ и израиль. Но его код работает! А Борис заблудился в собственых абстракциях.
Вот теперь внимание вопрос. Для чего нужно было так все раскладывать? Что бы израиля небыло? Да
наплевать. Не можешь прочитать код, иди туда, где сможешь. Не лезь к Маркусу. Особенно со своими советами, ибо итог закономерен.
Вот ты Мартина в пример приводишь, а мне допустим Фаулер с его эволюционным проектированием больше импонирует. Он не меньший авторитет, кто из них больше прав? Мартин говорит о том, что "метод должен быть коротким, короткий метод должен быть еще короче". А Фаулер наоборот показывал, как можно спокойно обойтись простыми ветвлениями. И что разбивка кода на методы по десять строк далеко не всегда оптимально и красиво.
Есть две прямо противоположные точки зрения на программирование. Первая близка тебе - при решении задачи сначала нужно найти подходящий паттерн. Вторая ближе мне - паттерн нужно использовать только тогда, когда без него уже вообще никак. И обе имеют право на жизнь.
Это не я придумал, почитай про XP (экстремальное программирование).
Так что высказываясь однозначно, ты не просто показываешь свою арессивную однобокость, но и унижаешь преверженцев иного подхода, подспудно обвиняя их в говнокодинге. А среди этих приверженцев водятся такие монстры программирования, рядом с которыми ты пыль на мониторе. Я не себя имею ввиду естественно.
И когда человек спрашивает о чем то конкретном, не нужно кидаться в крайности.
Цитата (Ron @ 20.08.2016 - 20:06) |
Если есть необходимость, запросы по типам выносятся в методы с говорящими названиями, где и формируются по входным данным. Там же все условия относящиеся непосредственно к лексике. Вот и всё. |
Нет, не всё. Это просто твоё видение архитектуры, не более того. А вопрос вовсе не об этом был.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 26.08.2016 - 10:01) |
Вот ты Мартина в пример приводишь, а мне допустим Фаулер с его эволюционным проектированием больше импонирует. Он не меньший авторитет, кто из них больше прав? |
Мартин Фаулер считает своим учителем д. Боба, более того, отзывается о последнем примерно следующим образом: "когда дядя Боб говорит - надо слушать". Так что я больше Роберту как-то доверяю. Ну как бы существует множество мнений, кто-то может быть и MVC отрицает, наверняка найдутся и такие.
Цитата (twin @ 26.08.2016 - 10:01) |
Первая близка тебе - при решении задачи сначала нужно найти подходящий паттерн. |
Естественно, когда возникает задача, первое что нужно сделать - это попытаться найти существующее решение. Ну это банальная вещь, в дипломе целая глава посвящается поиску существующих решений и обоснованию почему твое лучше и чем именно. Без этой главы дипломной работы быть не может, она там по сути говоря основная.
Цитата (twin @ 26.08.2016 - 10:01) |
Вот статья, безумно мне нравится. |
Ну что, статья ни о чем! Я бы даже сказал фарс. Один реализует паттерн "излишняя гибкость", а другой шпарит императивом, который не описывается схемами UML. А если вывести алгоритмику в блок-схемы вы увидите, что Маркус наговнякал ужасающее ветвление, трудночитаемые конструкции, а главное, неимоверно трудно расширяемый проект. Там об этом в комментах тоже говорится, только другими словами. Так что даже архитектура с антипаттерном "излишняя гибкость" на деле окажется гораздо проще и понятнее.
Кстати, не надо извращать смысл паттернов в глазах молодежи, она итак пошла слишком уж тугоумная. Для тех кто не знает меры в применении паттернов, существуют антипаттерны.
Цитата (twin @ 26.08.2016 - 10:01) |
Это просто твоё видение архитектуры, не более того. А вопрос вовсе не об этом был. |
Я считаю, что это архитектурный вопрос.
P.s.
twin все мы прекрасно знаем чем закончится очередная палемика. "Код нужно писать с умом". Или "главное результат, за который нам всем и платят".

Или "мультипарадигма". Короче что-нибудь слишком очевидное и слишком абстрактное.
Цитата (Ron @ 26.08.2016 - 08:00) |
Мартин Фаулер считает своим учителем д. Боба..... Так что я больше Роберту как-то доверяю. |
Плох тот учитель, которого не превзошел ученик (с) Белинский.
Цитата (Ron @ 26.08.2016 - 08:00) |
Естественно, когда возникает задача, первое что нужно сделать - это попытаться найти существующее решение. |
Это тут причем? Тут речь о подходах. Если возникает задача выбора альтернативных действий, я не задумываясь, напишу if... else. Ты же, наверняка, начнешь сочинять пораждающий паттерн какой-нибудь. Обоснованием этого наверняка приведешь довод, что эти алгоритмы могут потом понадобятся еще где-нибудь. И не зря же придумали фабрику к примеру.
И самое смешное, этим самым нарушишь один из принципов "чистого кода" - YAGNI.
Я применю фабрику только тогда, когда в ней действительно появится необходимость, а не "вдруг потом". И это проще: отрефакторить код, нежели пытаться продумать все "вдруг" заранее.
Вот в этом и вся разница. Просто разный подход к проектированию. Кстати, о принципах. Твой любимый дядя Боб придумал SOLID. Честь ему и хвала. Но применить его "чисто" и красиво практически никогда не получается. Слишком тонкие грани. Так что тратить время на то, чтобы потом ни кто не сказал - ааааа!!! тут нарушен принцип SRP!!! говнокод!!! ну я прям не знаю... Да пошли они все скопом, кто так говорит. Мне ближе и роднее KISS и тот же YAGNI. А SOLID - да как получится. По крайней мере я не вижу смысла тратить время ради таких чистокодеров*
Цитата (Ron @ 26.08.2016 - 08:00) |
Ну что, статья ни о чем! Я бы даже сказал фарс. Один реализует паттерн "излишняя гибкость", а другой шпарит императивом, который не описывается схемами UML. |
Как это ни о чем??? Вот опять ты смотришь с одного бока. Статья как раз именно о том, что нельзя кидаться в крайности.
Цитата (Ron @ 26.08.2016 - 08:00) |
А если вывести алгоритмику в блок-схемы вы увидите, что Маркус наговнякал ужасающее ветвление, трудночитаемые конструкции, |
А вот и лейбмотив. Для тебя ветвления считаются ужасными и трудночитаемыми. И ты пытаешься насоветовать ТС'ру писать понятный тебе код. Я понимаю мотивировку. Ты причисляешь себя к большинству. Но! Быть может его код вообще никто читать не будет. Либо будет читать привыкшая к такому дизайну команда (как у меня допустим). Я писал в самом начале про систему, которую хотел написать по новым правилам. А мне ребята сказали - нахрена??? Кому это надо? Я посмотрел внимательно в свете новых знаний - и действительно. Понты всё это. Для нас точно.
Цитата (Ron @ 26.08.2016 - 08:00) |
Кстати, не надо извращать смысл паттернов в глазах молодежи, она итак пошла слишком уж тугоумная. Для тех кто не знает меры в применении паттернов, существуют антипаттерны. |
Где я извращал их смысл? Я просто говорил и говорю, что паттерны, это не правила, и уж точно не запреты, как ты сказал. Это советы, не более.
Вот я давно высказал свое мнение.
Цитата (Ron @ 26.08.2016 - 08:00) |
а главное, неимоверно трудно расширяемый проект. |
А это бред. Не люблю категоричных высказований, но тут точно бред. Могу посприть на практике. Мы уже пробовали с chee. Там было много всяких обвинений в мою сторону. В отсталости, в говнокодерстве и так далее. Но вот в отсутствии расширяемости меня ни кто не смог упрекнуть.
А сей полемикой, ты прав, я не стараюсь доказать что-то конкретное. Я вообще любитель компромиссов.
Я вообще не втыкался в спор, но уж больно на нехорошей ноте он проходил. И мне, как приверженцу противоположной тебе стороны, которую вы тут пытались заплевать наставить на "путь истинный", обидно не только за него, но и за себя. Потому что и меня вкупе назвали говнокодером:
Цитата (Ron @ 21.08.2016 - 06:06) |
Это у тебя получается говнокод, отнимающий тонну времени каждый раз когда нужно подправить логику. |
А тут я молчать не стану. Ибо фигня это всё.
*Если одна крайность - говнокод, то есть другая крайность. В медицине называется мизофобия, боязнь испачкаться. Эта фобия вызавает обсессивно-компульсивное расстройство. Человек начинает навязчиво следить за чистотой. Пять раз в час моет руки, берет предметы через платочек, протирает все вокруг и так далее. Так вот, как только появляются советы писать "чистый код", мне всегда приходит на ум эта ассоциация. Это тоже крайность, на грани шизофрении.
Да, может там микроб. Даже может кто-то когда-то заразился один на пять миллионов. Чего в перчатках то ходить теперь всегда? Достаточно обычный гигиены.
И контрацептивов.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.