tag:blogger.com,1999:blog-10303035.post611279662080895105..comments2024-02-04T23:20:04.066+03:00Comments on Алёна C++: Статья Mea CulpaAlenahttp://www.blogger.com/profile/09389124127364799922noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-10303035.post-54576719201782270052010-07-14T05:50:07.173+04:002010-07-14T05:50:07.173+04:00Лет 5 назад я как-то у одного девелопера на форуме...Лет 5 назад я как-то у одного девелопера на форуме видел в подписи: "if it is hard to write it should be hard to read". И это было серьезно, он так и думал. К счастью, сейчас таких людей становится меньше (или мне просто везет?)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-22932692091059559782010-07-07T20:21:45.173+04:002010-07-07T20:21:45.173+04:002dan:
Do the simplest thing that could possibly w...<b>2dan:</b><br /><br /><i>Do the simplest thing that could possibly work. -- один из принципов XP.</i><br /><br />Это очень похоже на бритву Оккама.Alenahttps://www.blogger.com/profile/09389124127364799922noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-90785455011809783722010-07-07T19:57:40.973+04:002010-07-07T19:57:40.973+04:00Do the simplest thing that could possibly work. --...Do the simplest thing that could possibly work. -- один из принципов XP.danhttps://www.blogger.com/profile/04669026308831479079noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-38535384940483154352010-06-15T15:49:21.939+04:002010-06-15T15:49:21.939+04:00>Там описан клинический случай, по-моему.
Это ...<i>>Там описан клинический случай, по-моему.</i><br /><br />Это от обстоятельств зависит :) На одной из моих прошлых работ два очень толковых мужика писали собственную Real-Time OS, поскольку тогда руководство считало, что это может себя окупить.<br /><br /><i>> И кому-то проще одно, кому-то другое.</i><br /><br />Так в том-то и дело. Разговоров о том, что решения должны быть простыми, много. А конкретных рекомендаций об оценке (хотя бы оценке) этой простоты практически и нет (по крайней мере в популярном изложении я не встречал).<br /><br />Более того, поскольку мировозрение у разработчиков с возрастом меняется, то и оценка сложности так же будет изменяться. Сейчас молодые горячие C++ники любят трехэтажные шаблоны использовать. Для них это просто. А чуть постареют, подустанут от программирования и свой же собственный ранее простой код будет казаться им сложным и непонятным. И появится где-нибудь в блоге описание очередного клинического случая... :)eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-25548206793954104412010-06-15T15:35:29.676+04:002010-06-15T15:35:29.676+04:002Евгений Охотников:
Статья больше похожа на лозун...<b>2Евгений Охотников:</b><br /><br /><i>Статья больше похожа на лозунг "Лучше быть здоровым и богатым, чем бедным и больным". Лозунг о простоте продекларирован и все.</i><br /><br />Там описан клинический случай, по-моему.<br /><br /><i>У меня иногда бывает так: делаешь code review и код мне не нравится. Говоришь, что можно сделать проще. А человек не понимает. "Куда уже проще?", спрашивает. К счастью, зачастую я знаю, что именно можно переделать. Но бывают и случаи, когда интуиция подсказывает, что можно проще. Однако долго приходится вникать в тему, чтобы высказать конкретные рекомендации</i><br /><br />Code review - процесс тонкий, тут много замешано на психологии. И кому-то проще одно, кому-то другое.Alenahttps://www.blogger.com/profile/09389124127364799922noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-805082318550883652010-06-15T15:30:10.755+04:002010-06-15T15:30:10.755+04:00Статья больше похожа на лозунг "Лучше быть зд...Статья больше похожа на лозунг "Лучше быть здоровым и богатым, чем бедным и больным". Лозунг о простоте продекларирован и все. А как этой простоты достичь? И как вообще понять, достаточно ли просто какое-то решение или нет?<br /><br />У меня иногда бывает так: делаешь code review и код мне не нравится. Говоришь, что можно сделать проще. А человек не понимает. "Куда уже проще?", спрашивает. К счастью, зачастую я знаю, что именно можно переделать. Но бывают и случаи, когда интуиция подсказывает, что можно проще. Однако долго приходится вникать в тему, чтобы высказать конкретные рекомендации.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-77066410928971369932010-06-15T09:28:08.727+04:002010-06-15T09:28:08.727+04:00Ну что же: лучше поздно, чем никогда. Прозрел-таки...Ну что же: лучше поздно, чем никогда. Прозрел-таки человек на старости лет. KISS! Типа "будь проще".<br />Именно поэтому над такими Яркими Личностями (AKA brightest kids) должны стоять менеджеры и техлиды, которые будут возвращать их периодически с небес на землю и говорить - куда копать и как потратить энергию в мирных целях. <br /><br />А то ведь и вправду, стадо котов получается, лабающих мегабайты кода во имя своих идеалов, не имеющих малейшего представления - а для кого и что они пишут.Aquaryhttps://www.blogger.com/profile/10690422971056030987noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-32669254472430705102010-06-14T23:35:10.691+04:002010-06-14T23:35:10.691+04:00>тоже крайний - "все и сразу".
Так бы...>тоже крайний - "все и сразу".<br />Так бывает.<br /><br />С чего вы с автором статьи взяли, что два обсуждаемых параметра являются зависимыми?<br /><br />Более того, думаю почти любого распиздяя можно научить писать требования, проектировать критичные вещи перед программированием, сочинять каменты по делу составляющие 15-20% от общего числа строк, рефакторить вместо копирования кода, везде где возможно использовать Microsoft-библиотеки вместо OpenSource или тем более вместо разработки собственных, и другими способами демонстрировать старательность. Причём приобретённые бесценные навыки почти никак не отразятся на интеллекте распиздяя.<br /><br />P.S. Пару раз знакомые студенты спрашивали меня, как стать хорошим программистом. Совет который я им давал - поработайте в диаметрально разных областях IT. Один из эффектов - появится понимание, для каких задач можно нанимать "индусов", для каких не стоит.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-13339586424295290902010-06-14T23:34:40.819+04:002010-06-14T23:34:40.819+04:00>индийского кода в промышленных масштабах обычн...>индийского кода в промышленных масштабах обычно хватает для решения большинства задач<br /><br />Вы вероятно работали только в одной области? Web-разработка? ERP? Внедрение?<br /><br />IT проекты в этих областях обычно состоят только из тривиальных задач, если не брать 2% граничных случаев (разработка поискового движка, работа в Microsoft в команде Dynamics AX, внедрение чего угодно в масштабах General Electric - примеры граничных случаев в этих 3 областях).<br /><br />К счастью для любителей писать Indian-style говнокод, рынок таких IT систем огромен.<br /><br />Если алгоритмы предметной области нетривиальны - необходимо быть "the brightest kid" чтобы сделать хоть что-нибудь. Пример тривиального - формирование и печать отчёта по данным из RDBMS, примеры нетривиальных - распознавание образов, моделирование физики, численные оптимизации.<br /><br />Если имеются неудобные ограничения вроде "игра должна работать 60 FPS пропуская максимум 1 кадр из 200", "вся обработка должна уложиться в 1 минуту на деталь", "сервер с 16 ядрами должен обрабатывать 100 mbit/sec данных с загрузкой CPU не выше 90%", "у серийной железки будет 32kb EPROM для кода, 256kb RAM и 4kb NAND" - индийский код не взлетит, умение находить готовые решения скорее всего не поможет.<br /><br />К счастью для любителей писать over-engineered говнокод, рынок IT продуктов подразумевающих такие проекты тоже довольно большой.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-10303035.post-90194150396878296582010-06-14T15:20:35.437+04:002010-06-14T15:20:35.437+04:00soonts, вы производите впечатление такого же макси...soonts, вы производите впечатление такого же максималиста, как и mr. Edwards в начале своей карьеры (без обид).<br /><br />Для большинства задач вполне хватает чужого опыта и, соответсвенно, умения находить готовые решения.<br /><br />"Brightest kid" - это, насколько я понимаю, "отличник во всем", что в программировании только повредит. Лучше быть узким специалистом и делать свою маленькую (или средненькую) работу в команде хорошо.<br /><br />Будучи только "hard working" (старательным), можно вполне зарабатывать себе на жизнь и не волноваться о завтрашнем дне. И индийского кода в промышленных масштабах обычно хватает для решения большинства задач, хотя я не могу сказать, что это правильная стратегия (от обратного утверждения тоже воздержусь).<br /><br />Вы назвали два крайних варианта, но не заметили, что ваш вариант тоже крайний - "все и сразу".Дмитрий Scriptinhttps://www.blogger.com/profile/05249583887958608405noreply@blogger.comtag:blogger.com,1999:blog-10303035.post-65928677351098479362010-06-14T08:47:40.485+04:002010-06-14T08:47:40.485+04:00По ссылке прочитал статью про программиста, которы...По ссылке прочитал статью про программиста, который на заре карьеры сделал говносистему от которой все страдали, и только через 20 лет приобрёл достаточно опыта чтобы переделать её в нормальную.<br /><br />Сколь угодно технически сложный программный продукт можно сделать хорошим.<br /><br />Для этого необходимо одновременно быть the brightest kid in the class, и осознавать зачем нужны simplicity, conventions, hard work, responsibility, etc.<br /><br />Будучи только brightest kid - получится то что у автора статьи в начале карьеры, т.е. over-engineered система которую почти невозможно отладить и очень сложно модифицировать. Будучи только hard working - невозможно решать нетривиальные проблемы, при решении тривиальных получается индийский код. Оба крайних варианта одинаково плохие.Anonymousnoreply@blogger.com