Индустрия it-велосипедов

    Введение


    Я точно не могу сказать, что заставило написать этот пост — может быть мой накопившийся опыт и принадлежность к php-программистам, которые, всемирно известны своим быдлокодом или недавний пост, в котором автор описывает проблему, появившуюся в его велосипеде и связанную с глобальными переменными в различных модулях. 

    Почитав комментарии к которому, мне стало уж совсем плохо… Я просто не понимал как люди не видят сути проблемы, а видят только лишь ее последствия — проблему в велосипеде. А суть то заключается в том, что у автора напрочь отсутствуют какие-либо познания в «велосипедостроении». И что самое страшное — эти знания отсутствуют не у одного него. А практически у всей массы изобретателей которые сами велосипеды видели только на картинках. 

    А если взять в расчет то, что они не хотят даже посмотреть на другие велосипеды…
     

    Часть первая. История одного велосипедиста



    Я думаю начать нужно с того, что следует мысленно вернутся к той планке опыта молодого велосипедостроителя, на которой я впервые столкнулся с трудностями. На полтора года назад — в снежную зимнюю ночь и мою комнату, освещенную 19-ти дюймовым элт-монитором, тихой депрессивной музыке, доносившейся из недр старого советского проигрывателя пластинок и собственно мне — сидящим на полу и высекающему медиатором на не подключенном семиструнном Ibanez'е. 

    В то время я был обычным студентом, учившимся на последнем курсе по специальности 230101, которому до преддипломной практики оставалось чуть больше одного месяца, а дальше… одна единственная черта — защита диплома, перешагнув которую я буду выкинут в совершенно иной мир, который по сложности, размерам, жестокости и количеству возможностей реализовать себя, едва ли сравнится с тем, в котором я пребывал. Со знаниями едва ли немногим превышающие те, что я получил еще в школе, да и с полным непониманием как их можно применять в реальной жизни.

    А еще я был пыхарем и быдлокодером в своем самом ужасном проявлении — сорцы написанные мною в столбик представляли собой смесь из четырех языков(html, php, sql и javascript) с использованием функций и классов, разбросанный по различным файлам со всеми видами уязвимостей, которые только могут существовать. Но несмотря на это я чувствовал, что мне очень хочется развиваться дальше в этом направлении и совершенствовать свои навыки как программиста.

    Поэтому я на отлично сдал диплом, тема которого звучала примерно так «CMS с использованием технологии AJAX», и так же как и многие пыхари, решил создавать свой велосипед. Я был полон энтузиазма, и мне не терпелось наконец-то собрать воедино все свои знания о современном велосипедостроении: парадигме объектно ориентированном программирования, технологии ajax, блочной верстки с использованием CSS и даже связку xml с xslt. 

    Это сейчас я понимаю, что тогда я ничего не знал о велосипедостроении. Все мои знания о двухколесных транспортных средствах ограничивались XIX-ым веком. Конечно они уже не были модификацией дрезины Макмилланом, который по сути и создал первый в мире велосипед в нашем понимании — с седлом и рулем, то они явно были не прогрессивнее детища Пьера Лалмана, который придумал оснастить велосипед педалями. На переднем колесе. 




    Дрезина Макмиллана
    велосипед Пьера Лалмана
    Идеальный велосипед в понимании среднестатистического пыхаря

    Но тогда мне казалось, что я изобретаю, современный mtb-хардтейл на усиленной дёртовой раме, гидравлическими дисковыми тормозами, мультиспидом и достаточно легким весом. Что бы можно себя комфортно чувствовать как в кросс-кантри, не беспокоясь за то, что можно где-нибудь застрять посредине леса. Так и на улицах города, занимаясь стритом, даже не думая о том, что он может сложится под тобой при неудачном прыжке с лестницы.
    cutter_2005_complete.jpg - upload images with Picamatic
    mtb-хардтейл


    Этому способствовало еще и мое окружение, состоящее из таких же пыхарей, разных возрастов. У некоторых из них был опыт гораздо больший нежели у меня. И все они твердили одно и тоже: «Надо писать свою cms», «Зачем мне пользоваться чужим фреймворком если я способен написать его сам» и «Веб — сомнительное место для объектно ориентированного подхода, где время жизни скрипта не больше чем одна пятая секунды». 

    Я был глуп, наивен и поэтому их слушал. И писал. Поэтому неудивительно что мой первый велосипед был похож на инвалидную коляску — некоторые детали в ней сначала прибивались друг к другу с помощью гвоздей, а уже после приваривались, образуя монолитную конструкцию, которой все ни по чем… но она все таки ездила. И было уже неважно, что для поворота налево, нам необходимо убрать ноги с педалей, приподнять руль и только потом поворачивать. Что передний амортизатор был заблокирован в одном положении и после езды по кочкам можно было ощущать себя как шахтером, отработавшим восемь часов с отбивным молотком. Что пробив камеру, если конечно такое вообще могло когда-нибудь случится с металлической камерой, — нам пришлось бы заменять пол велосипеда, орудуя молотком, ножовкой и газосварочным аппаратом.

    Но я учился. И упорно следовал этим бездарным указаниями. Пиши свой велосипед крутилось в моей голове. ПИШИ! Я и писал. Опыта конечно у меня становилось все больше — картинки с различными велосипедами встречались все чаще и чаще, они становились больше, поэтому на них можно было разглядеть и некоторые детали. Да и узнал я о такой штуке как шаблоны проектирования. 

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

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

    И я начал писать с использованием их. А знал я их порядка 15 штук. Вы знаете что такое эффект второй системы? Если нет, то представьте себе bmx с 20 дюймовыми шипованными колесами, рулем от шоссейного велосипеда, двумя амортизаторами, четырьмя гидравлическими тормозами по два на каждое колесо (дисковые и v-brake), поддерживающими боковыми колесами (для тех кто только учится ездить), тремя сиденьями, бардачком для инструментов, коляски сзади, планетарным механизмом переключения передач, контактными педалями, четырьмя фарами работающих от автомобильного аккумулятора, зеркалами заднего вида и ремнем безопасности. 
    Pg_2113029834.jpg - Picamatic - upload your images
    обыкновенный bmx

    А если это все заставить держатся на одном огромном объектно-ориентированном гвозде — Registry, благодаря которому мы точно не можем сказать сможет ли ездить этот велосипед, если мы захотим снять один из фонарей… то получим точную копию созданной мной системы…

    Продолжение следует.

    Часть вторая. Продолжение



    Я не буду удивлен если многие программисты увидят в этой истории самих себя. Тем более я не удивлюсь, если они увидят себя в самом начале этого пути — в окружении пыхарей, которые советуют изобретать, изобретать и еще раз изобретать. Забывая о том, что для того, что бы создать что-то новое. Необходимо понимать как работает. Умные люди этот момент понимают. 

    Я даже приму как должное если вы дочитав до этой строчки ловите себя на мысли о том, что я вот с высоты своего опыта, который вы наверное уже поставили под сомнение, пытаюсь сказать «Изобретение велосипедов — зло». Пользуйтесь существующими. Нет. Тогда мы вернемся опять к уровню обезьян, а может быть даже и обратно в море.

    Но давайте все разложим по полочкам.

    Часть третья. Полочки


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

    И так проблема лежащая на первой полочке предельно проста  - низкий уровень вхождения. Научится изобретать все новые мутанты-велосипеды может любой человек за очень короткое время. К сожалению решить ее не просто. Просто так взять и поднять уровень вхождения в язык — практически невозможно. Причины вы и сами можете назвать.

    Проблема лежащая на второй полочке видна невооруженным взглядом - слишком много свободы действий. Вначале это кажется очень привлекательным и не проблемой вовсе. Но только через некоторое время осознаешь всю опасность данной свободы. Когда сталкиваешься с чем-то выходящим за рамки общепринятой логики, или эффектом бабочки — комментировал строчку в одной части проекта, упала вся остальная. Такое видел сам, своими глазами. Не один раз.

    А вот на последней полке у нас лежат самые интересные проблемы, о которых я здесь и распинаюсь. А именно о том, что люди, которые сами ничего не смыслят в велосипедостроении начинают поучать других, ведут их по самой неудачной тернистой тропе, по которой и шли когда-то сами, заставляя наступать на те же самые грабли на которые наступили они сами. Тропе изобретения велосипедов-мутантов.

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

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

    Часть четвертая. Начинаем с нуля. 



    И только после того, как я во второй раз осознал, что я делаю что-то не так. Я решил посмотреть на проблему с другой стороны. Просто сесть и подумать над тем что же именно я делаю не так. Через некоторое время я увидел ответ — я знал как можно решить проблему, но не знал почему её следует решать именно так. У меня банально была очень слаба теоретическая база. 

    И я начал учится. С нуля. По два-три часа в день, которые я нашел благодаря тому, что стал уделять меньше времени всему, что меня окружало — друзьям, любимым, музыке. И за это время я заново для себя открыл такие понятия как абстракция, полиморфизм. Я наконец-таки понял зачем нужно наследование, когда его следует применять, а когда вместо него необходимо использовать инкапсуляцию. Я заново открыл для себя объектно ориентированное программирование. 

    До меня дошло что то, что написано в учебниках годится только для написания глупых оторванных от реальности примеров с яблоками и геометрическими фигурами. Я понял что объект — это какая сущность, она не привязана к реальным объектам. У нее есть свое состояние, обязательства перед другими сущностями и потребности в других объектах. Это так просто. Это написано в каждом учебнике по программированию. Первыми строчками. Они дают нам понимание что такое объектно ориентированное программирование, а потом забирают его примерами с квадратом наследованным от прямоугольника. И человек привыкает считать что объект — это что-то из реального мира. А после вопит «наплодили тут объектов», когда встречает грамотный объектно ориентированный код. Ему приходится ломать свое понимание этого подхода. Так же как сломал его и я. 

    До меня наконец-то дошла суть шаблонов проектирования, которые действительно стали для меня шаблонами, а не серебряной пулей, решающей все возможные проблемы. Они нам не указывают как нужно писать. А всего лишь подсказывают. Теперь рефакторинг для меня не означал переписывание заново какого-либо куска кода не трогая все остальные. 

    Во многом благодаря различным книгам по проектированию (которые легко читаются во время поездки в метро) и копанию в чужих велосипедах (zend, ci, symfony), я понял, что не всегда использование планетарного механизма переключения передач, который идеально подходит для городских прогулок (который я могу собрать и разобрать с утра, с закрытыми глазами и жутким похмельем), гораздо лучше обычного механизма с кучей звезд. Я даже понял, что иногда он вообще не нужен. Зачем bmx'у с десяток скоростей. Чтоб банники дергать на скамейку было проще? Или занимала флетлендом (по сути танцы с велосипедом). 

    Нам не всегда требуется проектировать тяжелый двух подвес, который идеально подойдет для фрирайда, но так же ненадо и вдаватся в другую грань — создавая невероятно легкие шоссейники, на которых можно ездить с нереальной скоростью, но только по идеально гладкой поверхности. 

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

    Заключение



    В заключение хотел бы извинится перед  теми, кто считает, что я его задел, а среди таких я думаю наберется достаточное количество грамотных разработчиков со своими довольно грамотными велосипедами, на которых был поднят не один хороший проект. Речь шла все таки не о вас. Вас пыхарями назвать нельзя  :)


    Сейчас это уже не так. Сейчас он уже собран во один единственный «чертеж», в котором я оставил только лишь интерфейсы для каждого компонента вместе с эксепшнами. Безжалостно удалив все то, что когда-то было написано и лишив старого названия(brix framework), которое, думаю, только сейчас будет наиболее точно отражать его суть: brix от того, что briks (кирпичи), а не мера массового отношения растворённой сахарозы, как говорит нам википедия. 

     
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 154

      –8
      Хабракат, плиз!
        –13
        Уберите под кат! Пожалуйста T_T
          +5
          я по два раза по два раза не повторяю не повторяю
          • UFO just landed and posted this here
              +2
              … с двух логинов в одну минуту.
            0
            все правильно написано, подхожу как раз к 4 части, спасибо за вдохновение:)
              +1
              первая таблица с велосипедами в ширину не влезла :(
              (1280x1024)
                +5
                Как бы сказал Доренко: казалось бы, а причем тут php?
                  +5
                  Совершенно непричем. Такая ситуация наблюдается во всех сферах человеческой деятельности. Только к сожелению в мире php-программистов она уже давно стала нормой.

                    0
                    Имхо не совсем так. Все зависит от подхода конкретного человека. Если он рвется в бой (пишет свою CMS или CMF) не разобравшись с теоретической базой и не учитывая опыт ведущих вело-строителей, то результат очевиден.
                      0
                      Все рвутся в бой и что-то пишут. Посмотрите, сколько кругом различных фреймворков.
                      И я бы не сказал, что последние намного хуже тех которые появились раньше.
                      Важно победить в себе псевдо-гения и понять, что нет ничего плохого пользоваться чужим кодом.
                      Согласен с Вашим замечанием про теоретическую базу.
                      0
                      Соглашусь с Вами. Как человек, который обратил внимание на php, после С++, считаю что язык пхп без явной типизации очень расхолаживает программистов. Но как написано в комментарии ниже, все зависит от человека
                    +2
                    Статья отличная, с юморком. Не могу сказать, что несет новые, неизведанные сакраментальные знания, но читается легко, с интересом. Понравилась ваша самоирония.
                      +7
                      Не могу удержаться, чтобы не поблагодарить автора за столь эмоциональный и вдохновенный топик… Вы все абсолютно точно написали, только по моему мнению проблема всего одна и она действительно касается не только php, просто в языках веб-программирования она особо выражена, так вот проблема заключается в нежелании учиться… Любой начинающий быдлокодер не до конца прочитавший какую-нибудь книгу о ПХП и написавший какую-нибудь крутящуюся педальку, уже считает себя мастером… Тот кто приделал к ней пару колес — гуру… А собрал свой велосипед — твое имя уже высечено золотыми буквами на логотипе php… А ведь не спроста придумали поговорку — «Век живи — век учись», потому что учиться всегда есть чему…
                        0
                        статья отличная, было бы еще лучше, если б посоветовали хорошие книги, по которым начали учиться с нуля в четвертой части ;)
                          +14
                          Начал учится с нуля после прочтения «PHP 5 для профессионалов», которая не дала мне того, что я от нее хотел. Хотя книга по сути неплохая. Обратился к интернетам, статьи, главы из книг. Да даже если походить по ссылкам из википедии — стати посвященной ооп, то можно найти море информации о том что такое ооп и как оно работает.

                          Книги начал читать уже потом. И советую вот эти:
                          Мартин Фаулер: «Архитектура корпоративных программных приложений»
                          Мартин Фаулер: «Рефакторинг. Улучшение существующего кода»
                          Джошуа Кериевски: «Рефакторинг с использованием шаблонов»
                          С. Макконнелл: «Совершенный код»
                          Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес: «Приемы объектно-ориентированного проектирования. Паттерны проектирования»
                          Алан Шаллоуей, Джеймс Р. Тротт: «Шаблоны проектирования. Новый подход к объектно-ориентированному анализу и проектированию»

                            –9
                            А мне кажется, гораздо полезнее прочитать какойй-нибудь простой мануальчик по ПХП, а потом читать Хабр, все таки осилить перечмсленные 6 книг (наверняка толстых), не так то просто. К тому же информация на этом сайте намного разгнообразнее и шире.
                              0
                              Отвечу, исходя из собственного опыта: проще прочитать книгу, чтобы получить базовые знания, а потом полистать мануал PHP. Мануал — это всё-таки не учебник, а зачастую справочник по функциям.
                                0
                                Но необходимости периодического чтения сетевых ресурсов по тематике это не отменяет))
                                  0
                                  Конечно не отменяет! Мануал, книги, тематические ресурсы — они ведь дополняют друг друга :)
                                    0
                                    Все равно книги вначале. Книги — это базис, на который вы сверху будете класть мануалы или статьи. А вот если без книг — то в голове будет хаос и неразбериха… Вообщем все знания нужно класть на хороший фундамент, иначе дом просядет )
                                  0
                                  Лучше, все-таки, сначала прочитайте книги, прежде чем так аргументировать.
                                  Это очень крутой уровень.
                                    0
                                    Мануал — это справочник по языку и его возможностям. А перечисленные выше книжки учать проектированию. Если вы еще не поняли, что чтение тысячи «статей» на хабре, совершенно ничто по сравнению с прочтением хотябы одно такой книги, то я вам сочувствую.

                                    Полистайте хотя бы одну. К примеру Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес: «Приемы объектно-ориентированного проектирования. Паттерны проектирования» стоит всего 239 рублей. Думаю вы после этого переосмыслите ценность чтения книг, а не мануалов.
                                    0
                                    «Архитектуру корпоративных приложений» вот так сходу читать не рекомендую — многое пролетит мимо и не отложится. Первый раз читать ее надо уже имея некий багаж набитых шишек, а перечитывать избранные места рекомендую постоянно — до просветления.

                                    «Совершенный код» же рекомендую настоятельно.

                                    Столь же настоятельно рекомендую посмотреть в сторону литературы по C++ от Herb Sutter и Andrei Alexandrescu — особенно их общую «C++ Coding Standards».
                                  +3
                                  Степени просветления php-программистов:
                                  Первая: на этом языке я могу написать все, что угодно!
                                  Вторая: используя шаблоны и фреймворки, я могу написать больше, быстрее и лучше
                                  Наивысшая: лучше ничего не писать
                                  :)
                                  • UFO just landed and posted this here
                                    +2
                                    всем пыхарям и хроникам — курите маны )) уж простите, терминологией навеяло )
                                    • UFO just landed and posted this here
                                        +1
                                        Катастрофически много букв) Самоуничижительная стилистика это тоже плохо.
                                          0
                                          А что такое
                                          планетарный механизм переключения передач
                                          ?
                                        • UFO just landed and posted this here
                                            –1
                                            кышь отсюда
                                            +1
                                            Я точно не могу сказать, что заставило написать этот пост — может быть мой накопившийся опыт и принадлежность к php-программистам</blockquote
                                            Много опыта-то накопил к 20 годам, гуру? =))
                                              0
                                              А опыт у нас уже считается по возрасту?
                                              • UFO just landed and posted this here
                                                  +6
                                                  В определенном возрасте — да. Я понимаю, что войско хаброзадротов с манией величия растет как на дрожжах, но иногда все же стоит быть скромнее =)
                                                    +1
                                                    К 20 годам можно накопить лет 5 опыта, если начинать с 15)) А вообще кто-то и за год много всего нового узнает, а кто-то будет годами одно и то же делать и радоваться. А какой по вашему опыт должен быть у человека, чтобы считать его профессионалом?
                                                      +1
                                                      Полностью с вами согласен.
                                                      Опыт, как и саму жизнь, нужно измерять не длительностью, а насыщенностью.
                                                        +4
                                                        Конечно, реальный опыт никак не равен опыту в годах (т.е. продолжительность фильма != содержание фильма, а важно именно содержание).

                                                        P.S.: знал я одного человека, который не ленился похвастаться своим 8-летним опытом в области web-программирования =) — на деле же — это быдло-кодер (да-да — со всеми вытекающими — кашеобразный код и т.д.), который научился что-то там 8 лет назад и до сих пор применяет свои устаревшие тактики.

                                                        P.S.[2]: автор, статья интересная, и примеры на реальных велосипедах — тоже в тему =)

                                                        P.S.[3]: однако, в любом случае (это автора не касается), тот, кто яро призывает не изобретать велосипеды — потребитель. Ведь, задачи, как были разделены на два больших условных раздела, так и остаются разделенными: 1. «задачи на инструментарий» (написание языков программирования, сред, фреймворков, виджетов и т.д.) и «задачи на данные (повседневные, прикладные)». И ясно-понятно, что для выполнения первых нужны более глубокие знания, больший опыт, и (возможно) больший «полет фантазии» (ну, мы ж изобретаем, а не потреблям, поэтому творческая фантазия тут очень важна =)) И, естественно, работа первых оплачивается больше — это справедливо. И именно эта группа пионеров и изобретателей задает направление. Если все будут только потреблять готовые велосипеды — вернемся в пещеры есть сырое мясо.

                                                        P.S.[3]: а в правильном использовании фреймворков (устранение рутины, поручение «неблагодарной работы по генерации кода» машине) — тоже прогрессивное дело (однако, фреймворки разработатывают те же обычные люди, они так же ходят на работу, им за это платят деньги, они так же, порой, пишут всякий бред в своем коде, который потом ярые почетатели (потребители) этого фреймворка с пеной у рта выдают за уникальную особенность их любимого творения, тогда как хочется уже носом ткнуть в спецификацию языка и сказать: «Да посмотри же ты! Как ты можешь отстаивать этот бред?! Люди ошиблись, а ты — »мой любимый jQuery-мой любимый jQuery!« (кстати, ничего против jQuery не имею против — просто пришло на ум; хотя — в том же jQuery — есть ну такие бредовые куски кода, что просто вырезай и выкладывай в раздел юмора) „) — и тут уже видно, что, посмотрев в спецификацию, человек понимает, что слегка вообще не в теме =)

                                                        Поэтому, действительно, искать нужно всегда знания. Все эти локальные беды (“фу! ты пишешь на пхп? былокодер!» — «ты пишешь на рельсах? — респект!») — только лишь от незнания. А как человек получает эти знания — изобретая ли свой велосипед или анализируюя (и синтезируя) существющие — это уже второстепенный вопрос.
                                                          +1
                                                          Главное в этой погоне за знаниями не превратиться в ходячую библиотеку, которая никому не нужна.

                                                          Нужное — запомнить, ненужное — забыть. И потом применять.
                                                          А то ведь и объёмом знаний можно меряться, вот только не все их них нужны на деле.

                                                          Ну и, конечно, поддерживать свою «библиотеку» в голове в актуальном состоянии, чтобы не быть как тот кодер «с восмилетним стажем».
                                                            0
                                                            > одячую библиотеку, которая никому не нужна.
                                                            > вот только не все их них нужны на деле

                                                            а вот это уже крайне субъективно — у кого-то деятельность научная и изобретательная, у кого-то — прикладная на основе этих изобретений
                                                              0
                                                              Наверное, я не так выразился, но я именно это и имел в виду: каждому — своё. То есть, если человеку не нужна информация, то её лучше и не впитывать. Просто я много знаю таких «библиотек ходячих», которые знать — знают, но на этом всё их развитие и заканчивается.
                                                            0
                                                            да, кстати поэтому интересно смотреть как у них что-то там сделано… и часто это это полезно еще и потому что ты научаешся решать проблемы своего инструментария, но такое изучение инструментария жрут время массу.
                                                          +4
                                                          Я повторяюсь, в определенном возрасте, непосредственно сам возраст — неплохой критерий для быстрой оценки возможностей (впрочем очевидно, что всегда есть исключения, подтверждающие правила). Плюс, надо определится, что мы вкладываем в понятие опыт: можно с 15 до 20 каждый код перечитывать одну и ту же толстую книжку «Вкури PHP. Издание 2-е дополненное», каждый раз открывая для себя что-то новое, и каждый раз будет +1 к опыту. Будет ли такой же +1 к реальным возможностям? Вряд ли =)
                                                          Плюс, мы же с вами не в далекой-далекой галактике живем, а в близкой-близкой России, ну и какой титанический опыт будет у человека в интервале с 15 до 20? =)

                                                          А вообще, в данном случае забавен не сам вопрос опыта, а подача текста:
                                                          1. Как гуру, поведаю вам следующее:…
                                                          2. Вообще-то как вы уже поняли по тексту, я не гуру, а велосипедист-ученик, но раз уж начал писать в высоком стиле, то пожалуй в нем и продолжу…
                                                          3. Кручу, кручу, кручу педали верчу (с) к. Леопольд…
                                                          4. И вот так я прозрел и собственно и стал тем, кем я задекларировал себя в начале.
                                                          5. И пошли комментарии аля «Вау, какой вы лапочка, успехов вам, все у вас буит хорошо», «Вау, да вы прям как я, только я вот чаще на мопеде» ну и т.п.

                                                          Я конечно в основном утрирую, но в целом подобные тенденции, которые в последнее время становятся все сильнее, уже не столько веселят, сколько печалят =)
                                                            –4
                                                            Подачу знаний выбрал специально именно такую. Мне было не лень посидеть в гуглодоксе пару недель и набросать монументальный труд написанный сухим академическим языком, приевшимися примерами с грушами, которые наследуют абстрактый класс фрукт и агрегируют в себе десятки других объектов класса косточка.

                                                            Но надо ли? Кто это будет читать? Написал как умею — в стиле юношеского максимализма. Все прочли, все рады и довольны. Даже академики, которые посмотрят и презрительно скажут — «Пацан еще» и тролли, которые позабавятся над косяками в тексте.
                                                              +1
                                                              Вы пытаетесь учить — вот и реакция такая. Если вам кажется, что вы уже всё постигли — значит вы только в самом начале пути.
                                                    +3
                                                    Так а мораль в чем? Нужно покупать велосипеды в магазине или учиться строить свои, но классные?

                                                    По-моему — это вопрос личного выбора: можно классно зарабатывать на разработке фреймворков, а можно и на их использовании.
                                                      +3
                                                      мораль в том, что для того, что бы создавать свои велосипеды — нужно понимать что-то в велосипедостроении.
                                                        +1
                                                        просто, как и в любой профессии, нужно вращаться в обществе, быть в теме и смотреть, что делают другие. «уход в себя» на длительное время всегда очень плохо сказывается на опыте.

                                                        … в принципе, это ведь и называется «изобретать велосипед» :)
                                                        +1
                                                        Не, нужно купить детали от крутых велосипедов и из них собрать себе классный велик :)
                                                        даже не так… нужно купить с десяток велосипедов, посмотреть как и из чего они сделаны, понять, где что плохо, а где хорошо и уже с этими знаниями из разных деталий собрать свой, не на чей не похожий, классный велик.
                                                        +1
                                                        Монументально! Очень понравилось, и задело за живое! Во многом узнал себя!
                                                        Чувак, ты это точно не зря писал! Спасибо!)
                                                          +5
                                                          И как сейчас поживает ваш кирпичный велосипед?
                                                            +5
                                                            Было интересно и приятно читать, спасибо за статью.
                                                            С мыслями вашими во многом согласен, поэтому сразу уйду в небольшой оффтопик, который зацепил меня как эвангелиста ZF :)

                                                            [...] когда я столкнусь с условиями в которых ZF станет камнем тянущем весь проект на дно (из за своей низкой производительности)
                                                            Не пишите такого больше, пожалуйста.
                                                            Вы вводите в заблуждение новичков, которые могут подумать, что у ZF производительность низкая по сравнению с другими фреймворками аналогичного масштаба, а это совсем не так.
                                                            Кроме того, при грамотном выборе архитектуры собственного проекта, ZF никогда не сможет потянуть его на дно, даже если очень захочет :)
                                                            В худшем случае, он лишь малость ускорит неминуемую кончину проекта под растущей нагрузкой.
                                                            Но ведь проблемы масштабируемости решать должен не ZF, правда? ;)
                                                              0
                                                              солидарен,
                                                              ненадо винить молоток в плохом дизайне здания
                                                                0
                                                                Не буду, признаю свою ошибку.

                                                                К сожелению знаю только один фреймворк который по масштабу аналогичен ZF — Prado, но знаком с ним только по мануалу и десятиминутным копанием в коде. А Symfony и CI, в базовой комплектации побыстрее будут.

                                                                Да и не с проста человечество придумало и давно использует всем известный способ ускорения ZF, когда мы все в один файл сливаем и под акселератор загоняем ;)

                                                                Но ведь проблемы масштабируемости решать должен не ZF, правда? ;)

                                                                Правда. Но, он может помочь их решить ;)
                                                                  0
                                                                  Да и не с проста человечество придумало и давно использует всем известный способ ускорения ZF, когда мы все в один файл сливаем и под акселератор загоняем ;)

                                                                  Какой ужос!
                                                                  Не нужно этих извращений «всё в один файл» — это ведь не JS и не CSS :)
                                                                  Не знаю, как остальные акселераторы, но в APC этот «баг» (который и не баг вовсе, а фича :)) уже давно профиксен — require_once не вызывает никаких накладных расходов.

                                                                  Но ведь проблемы масштабируемости решать должен не ZF, правда? ;)

                                                                  Правда. Но, он может помочь их решить ;)
                                                                    0
                                                                    Пардон, не дописал ответ на вторую цитату.
                                                                    Он помогает, как может, но навязывать своё видение архитектуры никому не хочет, а без этого много не намасштабируешь…
                                                              • UFO just landed and posted this here
                                                                  +1
                                                                  видимо, пост вас серьезно задел. любите изобретать велосипеды, да?
                                                                  • UFO just landed and posted this here
                                                                      0
                                                                      тi как бы не понимаешь.

                                                                      пост не о фреймворке, который пишет автор. пост о том, что сколько бы человек не знал, ему нужно продолжать учиться. всегда.
                                                                        0
                                                                        тогда этот пост должен был выгдятеть так:
                                                                        «сколько бы я не знал, мне нужно продолжать учиться. всегда.»,
                                                                        а не гнать чушь про велосипеды и собственный далбаебизм. всегда. Ну серьезно, вот что полезного мы вынесли из этой исповеди нашего вундеркинда? По факту — ничего, в лучшем случае — сочинение на тему «как я провел лето», причем далеко не самое интересное сочинение.
                                                                          +1
                                                                          Если пост действительно об этом, автору следовало бы у Вас: Вы выразили эту славную мысль одним предложением :)
                                                                        +1
                                                                        Он и меня задел, чем дальше читаю, тем больше кисну. Особенно пассажи аля
                                                                        И я начал учится. С нуля. По два-три часа в день, которые я нашел благодаря тому, что стал уделять меньше времени всему, что меня окружало — друзьям, любимым, музыке. И за это время я заново для себя открыл такие понятия как абстракция, полиморфизм. Я наконец-таки понял зачем нужно наследование, когда его следует применять, а когда вместо него необходимо использовать инкапсуляцию. Я заново открыл для себя объектно ориентированное программирование.
                                                                        вызывают устойчивые рвотные приступы. Ученик-велосепидист, ептыть =) Хочу увидеть лицо автора, когда через пару лет он скажет «!!! >_< В мире существуют женщины O_o !!!» И еще больше хочу прочесть об этом заметку на хабре за его авторством =)
                                                                        • UFO just landed and posted this here
                                                                            +2
                                                                            да ладно вам, форма изложение — дело второе. весь цимес в месседже: человек осознал свою проф. некомпетентность и продолжил самообучение. маловероятно, конечно, но может кому-нибудь пост вправит мозги на место.

                                                                            на мой взгляд, такой топик гораздо лучше херни про sql injections в пыхе и очередной генерик объект с автоматическими геттерами-сеттерами.
                                                                        0
                                                                        оо, программист — эмтэбешник? )
                                                                        привет коллега :)

                                                                        главное — стремление к самосовершенствованию. это когда глядя на любой свой код (даже очень хороший) хочется сделать ещё лучше, даже если в этом нет надобности.
                                                                          0
                                                                          Ну, мтбшник получился из меня довольно хреновый, откатал только лишь один сезон. За который научился только банник дергать, серфить двадцать метров с падением на землю; да и пару раз левую ногу разодрал педалями. А потом почему-то разочаровался в этом всем… наверное не для меня это.
                                                                            0
                                                                            Лучшее — враг хорошего ;)
                                                                            +8
                                                                            Статья глупая и пафосная, я бы даже сказал баянистая.

                                                                            Почему баянистая? — Думаю понятно, таких статей написано море, которые клеймят дурачков программистов, которые строят свои велосипеды, а не используют фрэймворки. Даже сравнения теже.

                                                                            Ну а почему глупая? Очень просто, человека должен пройти через создание своего велосипеда — это определенная стадия развития — это хорошо! Нельзя это критиковать, да еще в такой высокомерной форме. Автор сам, идя к готовым фрэймворкам прошел такой же путь. Человек, который сразу садится за фрэймворк, часто, не понимает как в нем работают даже элементарные вещи.

                                                                            ЗЫЖ так что изобретайте велосипеды — это полезно! а когда надо будет, сами поймете, тогда и сделаете выбор между фрэймворками.
                                                                              0
                                                                              Согласен со всем! Если цель статьи предостеречь новичков от лишней траты времени на написания своих велосипедов, то статься даже вредная.

                                                                              Путь который прошел автор — должен пройти каждый, и не надо ничего перепрыгивать.
                                                                                0
                                                                                Имхо, сайт phppatterns приносит вреда куда больше, чем такие статьи. Объяснюсь: подаёт он информацию авторитетно, с кучей ссылок на Фаулера и т.п., однако в статье про Registry, скажем, отнюдь не сказано, почему и отчего этот паттерн вреден, например. И что подумает-решит-сделает новичок? А после подобных статей человек, возможно, в своём велосипеде не будет фару прибивать гаечным ключом к камере.
                                                                                  0
                                                                                  Я бы вместо phppatterns порекомендовал бы sourcemaking.com/
                                                                                    0
                                                                                    А я где-то говорил о том, что рекомендую?..
                                                                                0
                                                                                Вы меня опередили с камментом)

                                                                                статья действительно пафосная. я позитива и вдохновения не нашел, скорее наоборот.

                                                                                2 автор статьи: ну раз уж хочешь поведать свою историю, то пиши с уважением к читателям, а не в стиле «вы все г, а я такой молодец»
                                                                                  0
                                                                                  В последнее время на Хабре поднималась тема обучения веб-разработчиков.
                                                                                  Вот вам и задача для семинаров на семестр: сделать свой веб-фреймворк )))

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

                                                                                  Успехов.
                                                                                  –2
                                                                                  кстати да, пассаж автора «я наконец-таки понял зачем нужно наследование, когда его следует применять, а когда вместо него необходимо использовать инкапсуляцию» доставил.
                                                                                    –1
                                                                                    хуле минусуете, задроты? инкапсуляцию нравится вместо наследования применять?
                                                                                      0
                                                                                      тьфу, что-то я слишком много эмоциирую сегодня. прошу прощения, сорвалось.
                                                                                        +4
                                                                                        Ха-ха, давайте этот топик в «Юмор» перенесем, он там будет гораздо органичнее себя чувствовать =)
                                                                                        з.ы. А почему никто еще не создал тематический раздел «Я хаброзадрот»? Ну по аналогии «я (без)умный». На мой взгляд очень востребованное бы комьюнити получилось.
                                                                                          0
                                                                                          В курсе, что наследование — один из самых сильных типов связности? И что сильносвязные системы — зло?
                                                                                      • UFO just landed and posted this here
                                                                                          –1
                                                                                          перебьёшся, трольь, жри плюс
                                                                                            0
                                                                                            а нет, задел все-таки топик :)
                                                                                            • UFO just landed and posted this here
                                                                                              0
                                                                                              лови))
                                                                                              –1
                                                                                              уф… в избранное, будет время — нужно прочитать.
                                                                                                +3
                                                                                                Ты веришь, что прочтешь? :)
                                                                                                +1
                                                                                                Да действительно имхо топик ниочем, ужас как надоело это постоянное «велосипеды! велосипеды!», имхо на выбор каждого остается вопрос готов-ли он потратить время чтобы самому реализовать какой-либо алгоритм, или готов положиться на проффесионализм стороннего разработчика, уже его (алгоритм) создавшего.
                                                                                                А то что квалификации может нехватить чтобы сделать хорошо — так это совершенно обособленная проблема, никак не связанная с первоначальным вопросом, и даже скажу больше — пользуясь исключительно чужими компонентами можно научиться решать поставленные задачи, можно научиться решать их быстро и относительно хорошо, но вот только программировать научиться — нельзя, и однажды вдруг не найдя нужный алгоритм — останется только сесть на пол и жалобно заплакать, в надежде что найдется добрый дятька, который напишет его за тебя.
                                                                                                  –2
                                                                                                  Почему же топик ниочем, можно сказать что этот топик о крике души, одного юного девелопера, с избытком знаний :)
                                                                                                    +1
                                                                                                    с избытком знаний
                                                                                                    Попахивает снобизмом ))
                                                                                                      0
                                                                                                      Да как-бы вам обосновать мою позицию… Я вот сам себя считаю программистом на PHP, потому что я пишу программы на PHP, работаю программистом на PHP, интересуюсь PHP, читая различные форумы и блоги, в том числе хабрахабр, этот блог, как ни странно, тоже называется PHP, а в вашей статье вместо аббревиатуры PHP можно подставить абсолютно любое другое слово, как например:
                                                                                                      Я раньше неумел готовить котлеты, и за меня их готовила мама, потом я научился лепить котлеты сам, я лепил их и круглыми и квадратными, и даже в форме додэкаэдра, но потом я понял что мои достижения ничтожны, и стал покупать замороженные котлеты в магазине, до тех пор пока не научусь лепить котлеты так-же хорошо.

                                                                                                      Поймите меня правильно, мне, рядовому читателю, возможно конечно только мне, совершенно неинтересно читать про котлеты :) мне интересно читать про PHP.
                                                                                                      Вы говорите у вас избыток знаний — так поделитесь, напишите статью про интересный, неординарный алгоритм, ваше понимания реализации тех-же шаблонов проектирования объектно-ориентированного кода, и я с захлебом буду это читать, мне будет что сказать по этому поводу, сам я себя например не считаю что мое понимание настолько глубоко чтобы писать действительно интересные для публики статьи, но в дискуссии я-бы с радостью поучаствовал.
                                                                                                        0
                                                                                                        Тьфу блин, из-за кучи переформулировок мыслей оставил море очепяток :)
                                                                                                          0
                                                                                                          К сожелению с котлетами все сложнее. Полуфабрикат в еде и полуфабрикат в коде (фреймворк) — это две совершенно разные по вкусу вещи.

                                                                                                          напишите статью про интересный, неординарный алгоритм, ваше понимания реализации тех-же шаблонов проектирования объектно-ориентированного кода

                                                                                                          Думаю в ближайшем будущем попробую написать что-то подобное.

                                                                                                      –3
                                                                                                      блииииин… супер… очень эмоционально и красиво написано… аж проникся пока читал… :)
                                                                                                        +1
                                                                                                        Особенно фотки великов красивые.
                                                                                                          0
                                                                                                          да… велики забавно иллюстрируют сие повествование :)
                                                                                                        0
                                                                                                        За полтора года вы прошли неплохой путь. От того кто слишком сильно слушает других, до самостоятельного разработчика, который понимает, что и зачем нужно.
                                                                                                          0
                                                                                                          Единственный минус видится мне в том, что самостоятельному разработчику, кажется, начинает мниться, что он понимает лучше всех, что и зачем нужно.
                                                                                                            0
                                                                                                            Вам это только кажется.
                                                                                                              0
                                                                                                              habrahabr.ru/blogs/php/40491/#comment_986216

                                                                                                              Ничуть. По ссылке виден тот же «гуристый» взгляд сверху вниз и предположение, что ваш собеседник сильно глупее вас самого.
                                                                                                          0
                                                                                                          Посоветуйте пожалуйста мне грамотную книгу по PHP 5 ООП.
                                                                                                          До этого я писал «быдлокод». Хочу научиться ООП
                                                                                                          Спасибо
                                                                                                            +2
                                                                                                            Matt Zandstra — «PHP Objects, Patterns, and Practice»;
                                                                                                            Джордж Шлосснейгл — «Профессиональное программирование на PHP», глава 12;
                                                                                                            Энди Гутманс, Стиг Баккен, Дерик Ретанс — «PHP5. Профессиональное программирование», главы 3, 4.
                                                                                                              +2
                                                                                                              Про ООП — Стив Макконнелл, «Совершенный код». Про PHP все написано здесь.
                                                                                                                0
                                                                                                                ну Макконнелл совсем не о ООП писал.
                                                                                                                а так, Макконнелла читать обязательно.
                                                                                                              0
                                                                                                              многа букав, ниасилел. можно вкратце суть, без воды?
                                                                                                                +1
                                                                                                                Думаю, вкратце будет так: напиши свой велосипед, а потом пойми, что его можно было сделать проще, лучше и быстрее. А, вероятнее сего, его вообще можно было не делать. Ну, а далее — развивайся вглубь, чтобы более не болеть велосипедостроительством.
                                                                                                                  0
                                                                                                                  а что плохого в велосипедах? о_0
                                                                                                                    0
                                                                                                                    Плохого ничего нет. Приведу пример. Вот хочется поездить по природе или попрыгать там, поотжигать и что проще, купить уже готовый велосипед (благо, их много) или свой делать — раму варить, колёса гнуть и прочее?

                                                                                                                    Для типичных задач — типичное решение.

                                                                                                                    Не спорю, для жазни на Марсе в условиях иной гравитации — нам придётся придумывать новые велосипеды…
                                                                                                                  0
                                                                                                                  Можно: Я за год вырос из быдлокодера в довольно сильного программиста, с объемной базой знаний и умением их применять, потому что осознал, что необходимо научится применять знания, прежде чем их применять.
                                                                                                                  0
                                                                                                                  божественно! =)
                                                                                                                    +1
                                                                                                                    Ну статья-то правильная, но пафос тут неуместен.
                                                                                                                    Это статья человека, который только-только перестал быть быдлокодером :)
                                                                                                                    То, о чем он пишет — это «а» и «б» программирования, трюизмы.
                                                                                                                      0
                                                                                                                      Для вас полтора года — это только-только? Что же для вас тогда нормальный срок?
                                                                                                                        0
                                                                                                                        Про «полтора года» я пропустил.
                                                                                                                        Но, судя по статье, похоже что вы не «полтора года» назад прозрели, а существенно позже :) Буквально неделю назад. С таким пафосом обычно новые для себя открытия преподносятся, а не нечто устоявшееся. И конкретики у вас мало… То, что нужно читать книги по проектированию, изучать парадигмы программирования, и так все знают :) А аналогия с велосипедами — просто притянута за уши. Так сказать, натужная реализация шаблона сознания «изобретать велосипеды» :)
                                                                                                                        Не обижайтесь — ничего личного, правда. Если мои слова кажутся резковатыми, это просто потому, что я говорю что думаю, всегда. Уверен, все за вас только рады, если вы и правда выросли в професииональном плане. Кстати, было бы любопытно почитать более конкретные ваши посты. О том, чего именно достигли в результате своих изысканий.
                                                                                                                          0
                                                                                                                          Думаю этот момент наступил где-то в конце этой зимы. Как раз после прочтения Совершенного кода Макконнелла. Потом уже можно сказать была прокачка знаний в области архитектуры :)

                                                                                                                          А обижатся нечего — аналогию действительно пытался строить слегка притянутой, немного с иронией.
                                                                                                                          +1
                                                                                                                          Для меня и десять лет едва-едва достаточны для того, чтобы я осознал, насколько я ничего не знаю.
                                                                                                                            0
                                                                                                                            Для меня же, и один год — это огромный срок, за который можно достичь очень многово, если не тратить свои силы на различные мелочи.

                                                                                                                            А за 10 лет в нашей индустрии все уже поменяется. И не один раз. И далеко не факт, что накопленный багаж знаний будет нужен.
                                                                                                                              0
                                                                                                                              Для меня в детстве год был очень-очень долгим сроком. А сейчас уже нет. А люди, которые старше меня, говорят, что время летит всё быстрее и быстрее. Вот такая вот странность.

                                                                                                                              А за десять лет в одиночной камере без права чтения газет и без права переписки и родных-то не узнаешь. Слава Богу, мне эти десять лет не пришлось провести в одиночной камере без вышеозначенных прав.
                                                                                                                        +1
                                                                                                                        Хватит так открыто ненавидеть быдлокодеров. Тот факт, что появилось много быдлокодеров говорит не том, что мы деградируем, а наоборот — появляется все больше людей, которые заинтересованы в создании своих ведосипедов (это ведь лучше чем щелкать семки). И что-то я редко видел быдлокодеров, котрые хвастаются своими велосипедами так же открыто, как все их ненавидят.

                                                                                                                        Статья попахивает именно «ненавистью» к быдлокодерам, нежели чем-то поучительным.

                                                                                                                        Как-то так.
                                                                                                                          +1
                                                                                                                          Я не испытаваю ненависти, тем более открытой, к быдлокодерам. По большей части мне на них плевать. Если их устраивает их уровень знаний и они не хотят его повышать — это их проблемы (и правда проблемы сотен других людей, которые громко матерятся смотря на их код).

                                                                                                                          Меня просто немного раздражают их действия, когда я с ними сталкиваюсь. Вон, к примеру взять phpdude, превратившегося в тролля. Вроде начинал неплохо, даже топик сюда закинул, который запинусовали. Когда ему в комментах начали объяснять что он не прав — так скотился до уровня быдла, с криками «в метро книжки читают тока задроты-ботаники, а нормальные пацанатя на жопы баб глазеют». Получил еще с десяток минусов. Обиделся. Теперь вот троллит, наверное считая что все тут «пидары» и «задроты-ботаники».

                                                                                                                          И он такой не один, и не только на хабре, и не только в интернеха. Что с ними делать то?
                                                                                                                            0
                                                                                                                            Трлеей надо игнорировать)) Им будет скучно
                                                                                                                              0
                                                                                                                              Ок. А с теми кто просто учится отказывается :)?
                                                                                                                                +1
                                                                                                                                Чему учиться? Не понял, но думаю, что их не надо ничему тогда учить)
                                                                                                                              +3
                                                                                                                              Вы конечно вряд ли согласитесь, но в женских жопах определенно что-то есть =)

                                                                                                                              >Я не испытаваю ненависти, тем более открытой, к быдлокодерам. По большей части мне на них плевать.
                                                                                                                              >И он такой не один, и не только на хабре, и не только в интернеха. Что с ними делать то?

                                                                                                                              Гы, дядя, да в вас определенно зреет мания величия и нарциссизм =)

                                                                                                                              А вообще, мне чисто формально не понятна одна вещь: кто вам сказал, что вы стали мега-программером? И каковы критерии мега=программера в отличие от «быдло-кодеров» и других низших звеньев эволюции, которыми так любят обличать остальных некоторые самопровозглашенные «вундерваффе» от ИТ?
                                                                                                                              Профессионализм в капиталистическом обществе — штука хитрая, не знаниями едиными и килобайтами прочитанного/написанного текста/кода она достигается (я уж не говорю, про то, что для более чем сомнительны разговоры о каком-либо проффесионализме и полезном содержании в рамках данного топика — так, нлоя и моветон) =)
                                                                                                                                +1
                                                                                                                                > Профессионализм в капиталистическом обществе — штука хитрая, не знаниями едиными и килобайтами прочитанного/написанного текста/кода она достигается

                                                                                                                                ну, для потребителей, желающих лишь быстро срубить бабла, «профессионализм» может быть выражен и не «в килобайтах прочитанного», а копи-пастом с сайта django (при этом, подобные скрипт-кидисы будут аристократично придерживаться терминологии «быдло-кодер» и т.д. =)). Есть категория профессионалов — чисто разработчиков-теоретиков (которые строят системы, структуры, паттерны и т.д., которые потом, в свою очередь, будут использовать «профессионалы-потребители», цель которых часто лишь очень прагматична — «срубить бабла, и чтобы при этом надо было одну строчку написать» — и нельзя сказать, что эта цель плоха, нет — умение поймать момент (возможно, пустив пыль в глаза, не имея знаний) — тоже своего рода «профессионализм», но, я уверен, что люди с глубокой теоретической базой всегда будут шагов на 100 впереди и все эти определения «быдло-кодер», «малолетний хабразадрот» и т.д. будут восприниматься лишь с саркастической улыбкой =)
                                                                                                                              0
                                                                                                                              Имхо термин былокодер придумали те кто кодят на других яп (как бы не на PHP). Идея (самого определения — ярлыка быдлокодер) утопична. При чем тут яп вообще? Тут от конктреного человека зависит что он накодит.
                                                                                                                              0
                                                                                                                              Автор изобрел еще один велосипед -)
                                                                                                                              Не всегда написание своей цмс или чего бы то ни было — плохо. Гораздо легче и дешевле модифицировать и сопровождать свое родное решение чем тонны чужого кода. Главное знать меру — собственно это и приходит с опытом.
                                                                                                                                0
                                                                                                                                Это все понятно, что частенько проще написать что-то свое за неделю, нежели орудовать напильником, что бы сделать то, что нужно. Необходимо понимание, где писать самому, а где читать документацию и пользоватся.

                                                                                                                                А многие считают что лучше абсолютно все писать самим. Наверное лишнего времени у них много…

                                                                                                                                  0
                                                                                                                                  вот пожалуй это стоило написать в статье… ИМХО верный вывод…

                                                                                                                                  позвольте оффтопик:

                                                                                                                                  писание велосипеда — это процесс становления, но не процесс деградирования. Да на этом процессе можно зациклица, но он необходим как для психологического так и проф. становления… вы вот прошли через это, сделали выбор: искать готовые решения.

                                                                                                                                  Есть люди которые не нашли для себя приемлего решения, они от того не стали быдлом, как вы тут в коментах пишите — это не так.

                                                                                                                                  Кто-то не пользует готовые велики потому что просто не знает за чем они нужны… не понял что лучше проехать на том что катится, чем делать это самому
                                                                                                                                  Кто-то наоборот понял что то что есть катится не так как ему нада.
                                                                                                                                  Кто-то не думает и просто делает.

                                                                                                                                  вас почитать и кажется, что вы всех зовете быдлом — это не так.

                                                                                                                                  ИМХО вам нужно стать терпимей к людям.
                                                                                                                                    0
                                                                                                                                    Ага, например мой начальник. Предложил ему использовать в новом сайте Смарти, ещё какие-то пакеты… А он говорит, что не надо прикручивать чужое, напишем своё.
                                                                                                                                    А ПО наше, им написанное, до сих пор на VB, причём достаточно шерстистой версии. И апгрейд не планируется, т. к. переписывать всё — времени нет. =(
                                                                                                                                  +1
                                                                                                                                  Хотя вот интересно, что это они сами для себя домов не строят, одежду не шьют, деньги свои собственные не печают. Да почему они вообще пользуются программным обеспечением если в силах написать все сами и лучше!

                                                                                                                                  Не хочу никого обидеть (!), но это связано с качеством продуктов на самом рынке. Не так давно был популярный топик, в котором человек хотел выбрать CMS для своей фирмы… и как мне помнится, не смог и остался на своей самописной. Выражаясь вашим языком, порог вхождения в эти системы слишком велик и проще (и дешевле) оказывается начинать писать свою, чем разбираться в том, что уже есть.
                                                                                                                                    0
                                                                                                                                    Угу тоже приходил к такому выводу, что разбираться дороже…
                                                                                                                                    Сейчас считаю вывод ошибочным ибо разобравшись с некоторыми использую кусками…
                                                                                                                                    +1
                                                                                                                                    Мне не понравилось… Не люблю пространные топики на тему «моя жизнь и путь к просветлению». Вызывает реальное раздражение особенно если дочитаешь до конца.
                                                                                                                                      –2
                                                                                                                                      А зачем их читать до конца? Зачем же тогда их вообще читать если от них хочется давится и плеватся, зачем так упорно продолжать начатое?
                                                                                                                                        +1
                                                                                                                                        А я вообще читать люблю!
                                                                                                                                        У меня всё ещё теплится надежда, что на 10 подобных топиков будет хоть один оригинальный и интересный…
                                                                                                                                      +2
                                                                                                                                      Автор поста банально пытается всех PHP-программеров причесать под свой жизненный путь. Это ошибочная фигня т.к. программируя каждый делает это по своему.

                                                                                                                                      Дальше можно написать про то что раньше пренебрегал нагрузкой на СУБД и IO-серверов и не думал о расходе памяти накодеными собственно ручно скриптами а после озарения открыл для себя кэширование.

                                                                                                                                      Опыт — сын ошибок трудных ;)
                                                                                                                                        0
                                                                                                                                        Образность понравилась.
                                                                                                                                        Действительно, без разумных ограничений нет и разумной свободы действий. Только анархия и трехколёсное велосипедостроение)
                                                                                                                                          0
                                                                                                                                          Неправда ваша! На картинке одноколёсный!
                                                                                                                                          0
                                                                                                                                          прикол в том, что заголовок «Индустрия it-велосипедов» у меня на табе сократилось до «Индус...» :)

                                                                                                                                          символично, да?
                                                                                                                                            0
                                                                                                                                            Не уловил сути.

                                                                                                                                            www.google.ru/search?q=Диалектика+теории+и+практики+Ленин

                                                                                                                                            Возможно суть должна быть выражена как-то так?
                                                                                                                                              0
                                                                                                                                              Отлично.
                                                                                                                                              А теперь на результаты работы хотелось взглянуть.
                                                                                                                                              Можно?
                                                                                                                                                0
                                                                                                                                                Всегда было интересно почему такое стремление ярко выражено только у пыхарей.
                                                                                                                                                  0
                                                                                                                                                  Я начал изобритать свой велосипед, когда начал изучать один из cgi-языков программирования: нужно было делать проект + нужно было учиться. В результате, малыми шагами начал воять свою CMS.

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

                                                                                                                                                  Усугубляет проблему то, что на настоящий момент имею большой багаж опыта и рабочую CMS, на которой работает кучу проектов, что вкупе делает довольно трудным для меня переход на «готовые системы».

                                                                                                                                                  Единственный плюс, который есть во всей моей истории — то, что я делал все сам (хотя и использовал чужие наработки) и в результате имею систему, в которой на 100% разбираюсь и могу ее настроить каким-угодно образом под нужды клиента.

                                                                                                                                                  Всем своим знакомым, которые только «вступают» на этот путь я уже саветую переходить на готовые CMS-ки и не тратить время в пустую а, если хочеться сделать чтото свое, заниматься модулями или дополнениями.
                                                                                                                                                    0
                                                                                                                                                    … и в результате имею систему, в которой на 100% разбираюсь и могу ее настроить каким-угодно образом под нужды клиента.

                                                                                                                                                    Ради этого многие и пишут свои велосипеды.
                                                                                                                                                      0
                                                                                                                                                      Перед тем, как к этому придти я потратил несколько лет. За это время можно было с лихвой разобраться с готовой системой. Просто, на тот момент подходящих небыло (или я о них не знал).
                                                                                                                                                    0
                                                                                                                                                    Надо заставлять к таким телегам abstract писать, и чтобы не длиннее двух строчек.
                                                                                                                                                      +1
                                                                                                                                                      Верно… все верно.
                                                                                                                                                      Занимался велосипедостроением еще года полтора назад… меня спасло то, что в моем окружении были и умные люди, просто скинувшие мне ссылки на все топовые, на тот момент, фреймворки. Задумался :)
                                                                                                                                                      Результат:
                                                                                                                                                      Сейчас, уже отказавшись от большинства рутинных задач, изобретаю велосипеды в связке symfony latest / edge rails + Ext.JS / jQuery) это когда проект позволяет) в других случаях — проект становится шаблонным: определили проблему, взяли с полки адекватное решение, внедрили.
                                                                                                                                                        –1
                                                                                                                                                        Спасибо, очень хорошая статья.
                                                                                                                                                        Это действительно я.
                                                                                                                                                        Но все изменилось буквально неделю назад, когда мне предложили создать web студию на базе одного очень крупного проекта.
                                                                                                                                                        Два основных условия:
                                                                                                                                                        1. На работу 10 минут тратить ровно 10 минут не меньше (зачем нам все на соплях) и не больше (зачем нам тратить время попусту?)
                                                                                                                                                        2. Пишем только на отличном продукте. Если человеку нужно решение для бизнеса, которое поможет первый сделать прибыльнее — он вложит хорошие деньги. Поэтому теперь только Bitrix — решение для людей и программистов :)
                                                                                                                                                          0
                                                                                                                                                          К чему этот минус, велосипедист?
                                                                                                                                                          Поставил — отпишись почему.
                                                                                                                                                          0
                                                                                                                                                          Прочитал название и просмотрел картинки.
                                                                                                                                                          Если во всём вышеизложенном, говорится то, что я думаю — автора поддерживаю — мне самому интересно не использовать готовые решения.
                                                                                                                                                            0
                                                                                                                                                            Вау, уважаемый Александр. Мне крайне приятно видеть что затронув такой маленький вопрос появилась на свет такая хорошая статья. Фреймворк с великом сравнён несравненно-классно ;) Чесно.

                                                                                                                                                            Первое что я смог понять после прочтения, это насколько я сам торможу перед тем чтобы взяться за изучение кода уже имеющегося, кем-то написанного. О фреймворке ли речь, или нет — не важно, я всегда сперва торможу. Думается что это обычное дело — некое сопротивление, которое нужно преодолеть. Я из разряда тех, кто пытается сначала написать сам, и когда доходит до вышеназванных проблем переходит на правильный вариант, имея уже некоторые практические знания. Да, я видимо практик, поэтому на своих ошибках учусь.

                                                                                                                                                            Второе — я узнал какие книги мне можно искать. Из знакомых моих, с PHP работают только ребята из конкурирующих фирм, которые редко могут дать подобные толковые советы. В комментариях к статье я увидел где мне искать развитие, какие книги читать. Авторам этих комментариев огромное спасибо.

                                                                                                                                                            Ну и третье, что я и так знал, убедился лишний раз: нужно больше общаться с умными людьми, тогда поймёшь и четвёртое, и пятое, и шестое…
                                                                                                                                                              –1
                                                                                                                                                              Как сказал мой хороший знакомый (кстати, человек к 21 году уже заколачивал по $6к в месяц, правда администрированием) — «Нужно не пиз… ть, а работать».

                                                                                                                                                              Я откровенно сомневаюсь, что человек которому «было не лень посидеть в гуглодоксе пару недель и набросать монументальный труд написанный сухим академическим языком»(с) не занимался первым в ущерб второму.

                                                                                                                                                              >«с приевшимися примерами с грушами, которые наследуют абстрактый класс фрукт и агрегируют в себе десятки других объектов класса косточка.» — это велосипед, не так ли? Так зачем на него было убивать пару недель?

                                                                                                                                                              А учиться можно (и нужно) на реальных проектах, и не убивать «по два-три часа в день, которые я нашел благодаря тому, что стал уделять меньше времени всему, что меня окружало — друзьям, любимым, музыке.», а по 8 часов и при работе с реальными проектами. А после работы — друзья, любимые и музыка.

                                                                                                                                                              Не убивайте своё время на штудирование литературы от именитых авторов — там больше 80% информации вам не нужно. Увидел недавно книжку по AJAXу на аж 500 с чем-то страниц. Вопрос: Как можно написать столько текста про XMLHttpRequest?

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

                                                                                                                                                              Используйте фреймворки (также рекомендую смотреть на релизы и бакгфиксы) и справочники по языкам — научитесь куда быстрее. Здравый смысл и логику тоже никто не отменял, но книжек по ним, к сожалению, нет.
                                                                                                                                                                0
                                                                                                                                                                Good programmers write solid code, while great programmers reuse the code of good
                                                                                                                                                                programmers.

                                                                                                                                                                Only users with full accounts can post comments. Log in, please.