Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
я люблю рефакторинг, который уменьшит количества кода или упростит его поддержку, но люто не люблю рефакторинг с предпосылками «это некрасиво»
В процессе эволюции у человека не просто так появилось чувство прекрасного.Красивая теория, а мне кажется, что эволюция выработала чувство неудовлетворенности текущим положением. И потому если не унять своего перфекциониста — никогда не сможешь чувствовать себя хорошо здесь и сейчас, т.к. все время придется бежать к лучшему.
Не думайте о системе «на вырост». Другие требования — другая система. Не пытаться строить в деревне небоскреб — это и есть архитектура
Еще можно статью дать почитать восторженным молодым специалистам, которые хотят нахуячить 18 рядов абстрактных классов и интерфейсов, потому что «в будущем может понадобиться».
Для меня «дзен» ООП — это умение написать с его помощью такую архитектуру классов, которую не придется рефакторить до основания после очередной смены требований. И тут пригодится не сколько умелое применение паттернов, сколько интуиция по поводу того, что реально в будущем может потребовать изменений. И не впасть при этом в over-engineering и не стать архитектурным астрономом.
Менеджеры нихрена не делают же.
В общем, неуважительное отношение к чужому труду, расточительное отношение к чужому времени и завышенное самомнение — вот это фу, за которое хочется ломать суставы, как завещала принцесса. Причем это фу, которое со стороны программистов встречается часто, а со стороны бухгалтеров-манагеров и прочих не_ИТ_профессионалов редко.
И вот на ниве повышенного IQ и осознания, что можешь что-то, чего другие не могут, махать своим ЧСВ — вот это фу. А этим ну вот прям многие грешат.
Доска с маркером + телефон с камерой отлично заменяют UML-диаграммы и большую программ прототипирования интерфейсов
Третий секрет. Начните писать к commit'ах пользовательскую ценность добавленного кода. Не «добавил два метода», а «Теперь пользователю быстрее/легче/меньше...» или «появилась функция / изменилась реакция». Вам нечего написать? Вы ничего не сделали за день.
Вы и ваш двойник открыли бизнес по автоматизации чего-нибудь. Конкретно вы из вас двоих — директор.Я ничего не понял. :( Какого работодателя я нагрел, если вы сами назвали меня директором? И каким образом я кого-то нагрел на несколько копеек (часовая ставка / 9600)?
Какая у вашего двойника часовая ставка? Возьмите калькулятор и поделите цифру, указанную в трудовом договоре на 160. Если вы совершаете эти действия в рабочее время, то поделите результат еще на 60. Вот на столько (+20% льготной ставки в ПФР + 0.2% за травматизм + 6% УСН (половину можно зачесть из налогов ПФР) = +23.2% минимум) вы нагрели своего работодателя, развлекаясь здесь со мной.
программисты никому не нужны. И программы тоже. То есть совсем. Людям интересны они сами, их проблемы...Программы нужны программистам. Программисты тоже люди.
Невежда также в ослепленье
Бранит науки и ученье,
И все ученые труды,
Не чувствуя, что он вкушает их плоды.
Я не агитирую за т.н. «говнокод» и не говорю, что перфекционизм — это плохо
Тогда как говнокод понятен и прост, то в стройной ооп структуре проекта еще надо разобраться.
Тогда как говнокод понятен и прост, то в стройной ооп структуре проекта еще надо разобраться.
Я сталкивался с такими красивыми проектами, в которые кодер без 120 тыщ ЗП даже подойти бы не смог — и кому это нужно?
крупнейший проект сетевой и там кода под PHP 4 дофига
При этом, я никогда не видел ситуации, в которой программиста нанимали бы со словами: «Вот тебе зарплата — занимайся чем хочешь.»
хотел бы предложить всем оптимизаторам почитать свой говнокод трехлетней давности, и заставить себя немного нарастить его функционал, после чего стабилизировать и протестировать. Проклянете все на свете.
я предлагаю исполнителю спор на всю его з/п за месяц
Если я пишу программу про животных, то там будет и Животное и Млекопитающее и Корова — вот вам и три уровняА точно нужны обязательно все эти три уровня в любой программе «про животных»? Вроде даже Стив Макконел в «Code Complete» рекомендовал не больше трёх уровней иерархии классов и не более 7+-2 членов во всём иерархическом дереве классов (глава 6 «Классы», раздел 6.3 «Вопросы проектирования и реализации», специально поискал).
Вы уверены, что назначенный вами срок – тот самый, что дает те самые 80% качества? Конкретно у этого разработчика? Или вас устроит и условные 50%, которые он способен выдать за это время? А разработчик в курсе, что вам сейчас нужно «лишь бы запускалось»?
Главная проблема заказчика — может быть сейчас, на этом этапе, ему действительно нужно, чтобы «лишь бы запускалось», но он не понимает, что и завтра это будет только «лишь бы запускалось». Построить на этой сопле вселенную он не сможет, а если попытается — она рухнет.
Ему надо было решить проблему.
Вся проблема в том, что «в двух словах» проблему описать, да ещё так, чтобы все понимали под этим одно и то же, никому ещё не удавалось. Поэтому, к сожалению, нужно описывать решение проблемы (не забывая про проблему, конечно).
просто поговорить с исполнителем до того как
дебажить один метод на 50 (или даже 100) строк проще, чем 50 методов по одной строке
step into / step out сильно сокращают количество расставляемых брейкпоинтов
Вы, возможно, не имели дело с программами, «бизнес логика» которых включает в себя задачи математического моделирования.Утрируя перефразируя и вспоминая историю вычислительной техники, получается забавнее: «Вы, возможно, не имели дело с программами, делающими то, для чего изначально было создано программирование.»… Что ж, да, так оно обычно и есть, как это ни грустно и ни смешно бы было.
Такие тексты пишут те, у кого нет опыта переписывания функциональности с нуля из-за того, что предыдуший вариант нихрена не расширяем и простым рефакторингом там не обойтись.
Как улучшить свой стиль программирования?