[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правильно делать commit ?
Страницы: 1, 2, 3, 4
clocwerk
Цитата
и да, twin на сколько помню пропагандирует Императивное

Цитата
Таки да, я ничего про процедурное не писал. Я за мультипарадигму.

Сори, совсем не правильно вас понял. Почему то всегда считал что если не ООП то значит процедуры.

А так в целом огромное спасибо bestxp и twin все по полочкам разложили, теперь многое стало понятно. Хотя многое стало еще более непонятным smile.gif
twin
Тут как посмотреть. И что считать говнокодом.

Принято считать говнокодом то, что не отвечает паттернам и вообще избегает проектирования. Однако есть и другая точка зрения, и другие подходы к планированию. Когда размывается грань между предварительным и эволюционным проектированием. Находится золотая середина, отвечающая текущим потребностям.

Так вот, те, кто придерживатся первых канонов (планирование, продуманная до мелочей архитектура, паттерны и прочие изыски), больше склонны к нарцисызму, нежели к реалиям. Они пишут код фактически для себя, а не для конечной цели.

Конечная цель любого кода - он должен работать. И работать должен хорошо. Особенно если это коммерческий продукт.

Конечный продукт должен быть оптимальным, быстрым, с низким потреблением ресурсов. Он должен приносить прибыль, а не демонстрировать навыки программиста в плане "смотрите, как я умею".

А цель "планировщиков", это свести на минимум будующий рефакторинг. Они стремятся написать "идельный" код, который будет работать всегда и без внешнего вмешательства. Поэтому у них зашкаливает абстракционизм, оптимальность кладется на алтарь полиморфизма, часто применяется "мягкое программирование", когда изменение поведений достигается не рефакторингом, а настройками. Все это больно бъет по производительности.

Не понятно при этом, зачем потом нужен программист, если код построен так, что с ним больше ничего не нужно делать...

И почему то почти всегда ООП связывают с "предварительным проектированием". А раз для него не придумано ничего, кроме объектов, то и без паттернов тут обойтись никак нельзя.

Вообще любопытно еще другое. Почему то на форумах обычно присутствует два контингента программистов. Начинающие (неопределившиеся), и те, кто свято придерживается канонов ООП. Те, кто определился и выбрал другой путь (то же XP), обычно с форумов пропадают.

Скорее всего потому что вопросов у них больше нет, а отвечать в ключе "паттерны - это плохо" себе дороже, чревато холиварами и снижением рейтингов. Другими словами - адепты заклюют и объявят говнокодером. Да и сама методология не предусматривает никаких рамок, так что и объяснять то и нечего. Нужно писать так, чтобы хорошо работало, а не так, чтобы ткнув в любое место, мы попали в какой-нибудь паттерн.

Вот Santehnick дал ссылку на одного из ярких представителей "классицизма". Начитавшись в детстве Зандстры, он видит во всем, что "не по науке" говнокод. Сам не понимая того, что сей продукт кормит не только владельца, но и его, как программиста. Да, непривычно ему, потому и тяжело кажется. А мозги на что?

Я могу другую ссылку дать. Почитайте, весьма любопытно. Кто слаб в английском, есть неплохой русский перевод. Это Фаулер кстати. Автор многих трактатов по ООП. Так вот он советует не только не бояться рефаторинга, но и видит в нем несомненную пользу. А рефакотринг, это враг предварительного проектирования. Ибо может свести на нет все эти заумные UML диаграммы, взаимосвязи и "стройность" архитектуры, с таким трудом выпестованной и лелеемой "проектировщиками".

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Ron
Цитата (Santehnick @ 8.11.2015 - 05:13)
Вот можешь почитать опыт других. Что делать, если от программирования уже подташнивает?

Интересно! Спасибо Santehnick эта статья мне очень понравилась. Комментарии только немного смутили. Неужели знание паттернов может обеспечить зароботок выше 80к в месяц? Может быть я уже слишком давно во фрилансе и отстал от жизни... Но разве 80к это не хорошая зарплата для толкового программиста?

twin, а у тебя с английским как, хорошо? Помнится я где-то выкладывал ссылочку на длинный английский ролик. Там Роберт Мартин кое-что говорит по поводу качества кода, паттернов и вообще ООП. Ты с ним, получается, не согласен?

Invis1ble, жжош! )))

twin
Цитата (Ron @ 8.11.2015 - 06:14)
twin, а у тебя с английским как, хорошо?

C техническим норм. А вообще не очень, особенно на слух. Практики нет. Только за границей, где я бываю не так часто, немного подтягивается. Ролик... не помню.

Я знаю одно точно. "Качественным" считается такой код, который читается сходу. Сиречь "привычный". Если алгоритм хоть немного отступает от общепринятых правил, у многих программистов это вызывает батхерт, так как нужно напрягать извилины. И он тут же объявляется говнокодом. Им плевать, что такой алгоритм может быть гораздо оптимальнее.

Помнится тут был спор, как лучше разбирать массив. Циклом или встроенными функциями. Нативными функциями оказалось в два раза быстрее. Но аргумент противников был - читабельность. Мол с циклом сразу видно, что делает код. А функции знают не все.

Вот примерно тоже самое и с "качественным" кодом. Если он построен не по общепринятым паттернам, значит нужно разбирать логику. Это сложнее, это требует знаний. А с паттернами легко. Вот обсервер, вот реестр, вот абстракная фабрика, вот DI. Никаких велосипедов. А на то, что это пишется не для сервера, а для минимизации умственных усилий - наплевать. Ведь железо дешевле программиста. smile.gif

Скоро программист вообще ничего не будет стоить. Все по шаблону. Два клика и сайт работает. Долго, нудно, с падением серверов, но зато думать не надо. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
sergeiss
Цитата (twin @ 8.11.2015 - 09:30)
Те, кто определился и выбрал другой путь (то же XP), обычно с форумов пропадают.

Прочитал про это "экстремальное программирование" и понял, что я сейчас, в офисе, именно им и занимаюсь. Всё, что описано в "Основных приемах XP", у нас работает на 100% - прямо как наша команда описана. И кстати, без ООП в его всеобъемлющем виде wink.gif Правда, это работа с JS.
Такая разработка, по опыту, позволяет совместно работать людям разного уровня. Просто те, кто послабее, дольше работают над своей задачей. При этом их разработка никак не влияет (не тормозит) разработку у других программистов.

Вообще говоря, этот самый XP приводит к тому, что разработка длится не очень быстро. Но зато качественно. Архитектор проекта - грамотный мужик, не дает использовать "левые" решения. Только так, "как положено" smile.gif Хотя иногда на поиск правильного решения может уйти некоторое время, а "левая" технология позволяет получить решение сразу же. Но в итоге затраты времени "сейчас" приводят к тому, что код получается стройный и не приходится тратить время "потом".

PS. git и локальная версия github на внутреннем сервере компании очень даже способствуют такой разработке.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Ron
Цитата (twin @ 8.11.2015 - 10:55)
И он тут же объявляется говнокодом. Им плевать, что такой алгоритм может быть гораздо оптимальнее.

Нет, ну говнокод он и есть говнокод. В моем понимании дело не в оптимальности а в структурировании. Например код без MVC уже говно, какие бы алгоритмы там не использовались. Потому что он меня будет очень сильно тормозить при его изучении. Сильносвязанный код тоже говно какие бы алгоримты в нем не использовались. Я исправляю в одном месте что-то, и вдруг функция совершенно не относящаяся к делу перестает работать. Из-за чего мне нужно работать с кодом всего проекта, а не отдельным кусочком. Смотреть какие безумные флаги что взводит, где они потом используются. Глобальные переменные и прочие радости. Вот это всё - симптомы говнокода. Хотя алгоритмически реализация может быть на 5+.

Цитата (twin @ 8.11.2015 - 10:55)
Вот обсервер, вот реестр, вот абстракная фабрика, вот DI. Никаких велосипедов.

Так это всего лишь именованные алгоритмы. Точно так же как метод пузырька. К паттерну "одиночка" я сам пришел и даже не подозревал что он так называется. Они могут быть очень говняно реализованны и толку тогда от них мало. Но я хоть буду понимать, если вижу навозец, а мне говорят что это "фабрика", то буду знать под каким углом на него смотреть.

Цитата (twin @ 8.11.2015 - 10:55)
А на то, что это пишется не для сервера, а для минимизации умственных усилий - наплевать. Ведь железо дешевле программиста.

Ну это факт. И гораздо выгоднее оплатить аренду хостинга чуть дороже, но производительнее, чем переплачивать программисту за время пока он продерется через жутчайший сильносвязанный (хоть и оптимальный) проект.

Цитата (twin @ 8.11.2015 - 10:55)
Скоро программист вообще ничего не будет стоить. Все по шаблону. Два клика и сайт работает. Долго, нудно, с падением серверов, но зато думать не надо.

А ведь есть уже такое. Вордпрессы, джумлы, опенкарты. Тем не менее спрос на программистов не упал слишком уж резко. На хостинге BlueHost популярные CMS разворачиваются именно за два клика. Из панели управления.
twin
Цитата (Ron @ 8.11.2015 - 18:02)
Например код без MVC уже говно, какие бы алгоритмы там не использовались

Вот о чем я и говорил. Если ты не знаешь, что кроме MVC есть еще HMVC, MVP, MVVM, MOVE и куча других паттернов, то значит они все - говнокод. По сути ты своё невежество в этом вопросе в агресивной форме пытаешься выставить виной тем, кто не использует этот набивший оскомину шаблон. Раз используется незнакомая технология, значит говнокод. biggrin.gif
Цитата (Ron @ 8.11.2015 - 18:02)
Потому что он меня будет очень сильно тормозить при его изучении.
Разумеется. Об этом я тоже писал. Если требует хоть немного умственных усилий, значит говнокод. smile.gif Прямо огромные ослинные уши батхерта торчат из такого заявления.
Цитата
Сильносвязанный код тоже говно какие бы алгоримты в нем не использовались. Я исправляю в одном месте что-то, и вдруг функция совершенно не относящаяся к делу перестает работать.

Естественно. Но почему то при этом жутко порицается повторение кода. А тут либо трусы, либо крестик. Для того, чтобы усидеть на двух стульях, нужна огромная задница. Если пишешь слабосвязанный проект, но используешь функционал "один ко многим", то приходится изворачиваться ужем. Что в итоге делает систему сложной, запутанной и трудноуправляемой, не смотря на обилие моков, шмоков и подробных комментариев.
Но такое усложнение не принято называть говнокодом. Его принято называть "правильной архитектурой".

Хотя к архитектуре это не имеет никакого отношения. Архитектура, это функциональность в первую очередь. Если архитектор здания сделает туалет не на каждом этаже, а поместит его в лифт и будет "внедрять" по мере надобности, то это повлечет за собой перерасход электричества, усложноит донельзя коммуникации, затормозит процесс акта дефикации. И пользователи такой архитектуры могут тупо обосраться. Но зато можно очень удобно пригнать его на этаж обслуживания и протестировать. smile.gif Так что же считать говнокодом... Вопрос.
Цитата (Ron @ 8.11.2015 - 18:02)
Глобальные переменные и прочие радости.

Всему есть свое применение. Я не удивлюсь, что можно найти вариант рационального использования GOTO. По крайней мере на ексепшены никто стойку не делает, хотя механизм схож. Но если этого не знаешь, то на все, включая собачку, принято реагировать, как на команду "голос!". Увидел trigger_error - тяф! Увидел собачку - Гав! Гов! Говнокод!
Потому что разобраться в вопросе сложнее, чем вызубрить полтора десятка паттернов. И почувствовать себя богом программирования.
Цитата (Ron @ 8.11.2015 - 18:02)
Ну это факт. И гораздо выгоднее оплатить аренду хостинга чуть дороже, но производительнее, чем переплачивать программисту за время пока он продерется через жутчайший сильносвязанный (хоть и оптимальный) проект.
Гнать такого программиста ссаными тряпками. Если ты не умеешь читать чужой код, ты вообще не умеешь читать код. Ибо он на 99% чужой. Паттерны в нем или шматтерны - не важно.

Программист по определению устроен так, что "я сделал бы лучше". Вон chee полез доктрину ковырять. Не устраивает она его. Это похвально, это признак мастерства. Такой специалист ценен, соответственно и оплачиваться должен выше, нежели простой пользователь, который понятия не имеет, как оно устроено, но на каждый самописный чих кричит - говнокод. Адекватные работодатели это понимают, и готовы платить больше, чтобы их продукт был конкурентоспособен.
Цитата (Ron @ 8.11.2015 - 18:02)
А ведь есть уже такое. Вордпрессы, джумлы, опенкарты. Тем не менее спрос на программистов не упал слишком уж резко.
Всё верно. Вот только написаны они не для программистов и не для сервера. А для тех, кто привык платить дважды.

Недавно мой напарник (не программист) развернул на нашем общем шареде вордпресс. И буквально через неделю пришлось покупать пермиум-аккаунт. Копейки вроде, но очень показательно. Потому что используется максимум десятая часть функционала, а уже потребовалась доплата. А за несколько лет набежит приличная сумма, не сопоставимая с той, что он заплатил бы за пару дней работы программиста. Я конечно перепишу эту ересь попозже, но не у всех есть такая возможность. И люди годами терпят убытки, потому что повелись на халяву и поставили "в два клика".

Особенно быстро прозрение наступает, если вдруг появляется посещаемость. И тут все эти "правильные архитектуры" вылазят боком.

Правильно сказал Santehnick. Пока вы любуетесь на свой "качественный код", конкуренты с их "говнокодом" уже деньги зарабатывают.

Так что вопрос еще, что говнокодом считать. С какой стороны посмотреть...

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.