Впереди еще внедрение непрерывной разработки и автоматической сборки проектов. Удачи с этим. И, надеюсь, вам все-таки удастся просмотреть статьи на тему «10 вещей, которые надо (не надо) делать при работе с...» — а то как-то слижком уж много граблей было у вас на пути.
А если серьезно, то такие «велосипедисты» — очень большая проблема в реальных проектах. Они тратят огромное количество времени и средств заказчика на реализацию того, что уже было написано до них — просто потому, что либо не знают о существовании уже готового решения, либо буквально отвергают чужой код и идеи. Низкое качество продукта, перенос сроков и постоянное переписывание кода с нуля — вот самые болезненные признаки таких людей.
Злоупотребление в том, что здесь классическую задачу по перебору элементов дерева вместо простого решения с использованием рекурсии и цикла решают с помощью таких громозких инструментов, как LINQ и т.п. Все-равно, что стрелять в мух из пушки.
В приведенных решениях мало того, что невозможно разобраться с первого раза (в одном из примеров даже потребовались комментарии!), этот код невозможно легко модифицировать, отлаживать, да и вообще что-либо с ним делать. За такой код, попади он в рабочую ветку, ваши коллеги долго будут вспоминать вас добрым словом.
2 года назад, когда еще использовал «бесплатную» версию компонентов, оформлял баг на Access Violation для грида (cxGrid) при сочетании контекстного меню из dxBars и обновления данных в дочерних представлениях. Сразу же попросили предоставить контактные данные, без которых ничего не захотели рассматривать. Прошло 2 года, а ошибка до сих пор на месте.
Почему? У Oracle есть прекрасная бесплатная версия СУБД — Oracle XE, которая хорошо подходит под небольшие проекты. Как только появится необходимость в большой базе — перейти на нее с XE будет не проблема.
Oracle — это не просто база данных, а целая инфраструктура, включающая в себя огромное количество технологий и программных продуктов для корпоративного рынка. СУБД — это лишь малая часть айсберга.
Думаю, фраза «слетели пароли» будет более понятной для простых пользователей банк-клиента (читай, бухгалтеров), чем «возникли проблемы с сервером авторизации, где сгорел массив из жестких дисков и сейчас в срочном порядке происходит восстановление данных из резервной копии».
Более того, при необходимости, можно получить 99-процентную точность при распознавании почти любой капчи с любого сайта в течение 5-60 секунд — сейчас услуги по анализу данных стоят сущие копейки.
У нас в различных проектах было несколько подходов с попыткой применить подобный код. Результат оказался плачевный — код очень тяжело поддерживать и дорабатывать, весь ООП-функционал намного легче реализовывался средствами обычных языков программирования, существующие подходы и инструменты в конечном итоге все-равно требовали представления данных в стандартной табличной форме.
desktop.google.com
А если серьезно, то такие «велосипедисты» — очень большая проблема в реальных проектах. Они тратят огромное количество времени и средств заказчика на реализацию того, что уже было написано до них — просто потому, что либо не знают о существовании уже готового решения, либо буквально отвергают чужой код и идеи. Низкое качество продукта, перенос сроков и постоянное переписывание кода с нуля — вот самые болезненные признаки таких людей.
В iPhone нет полноценного GPS для навигации, нет полноценного bluetooth для передачи файлов, нет java, нельзя поставить свою мелодию на звонок.
В приведенных решениях мало того, что невозможно разобраться с первого раза (в одном из примеров даже потребовались комментарии!), этот код невозможно легко модифицировать, отлаживать, да и вообще что-либо с ним делать. За такой код, попади он в рабочую ветку, ваши коллеги долго будут вспоминать вас добрым словом.
Советую почитать всем, даже тем, кто не собирается играть в EVE.