ASP.NET MVC → Приводя в порядок POSTs в ASP.NET MVC
В топике описывается один из профессиональных приёмов разработки ASP.NET MVC приложений, который позволяет значительно сократить количество повторяющегося кода в обработчиках POST действий форм. Несмотря, на то, что я узнал о нём ещё во времена первого издания ASP.NET MVC In Action и первой mvcConf, стиль изложения Jimmy Bogard мне показался очень простым и я решил опубликовать вольный перевод для тех, кто ещё не использует этот подход на практике.
Проектирование и рефакторинг → Рефакторинг проекта в SVN с помощью ANT из песочницы
В статье описывается способ разделения логики и реализации логики в ant-скриптах, примененный для решения одной практической задаче по рефакторингу большого проекта в SVN-репозитории.
Имеется проект в SVN из 15 000 файлов и 5 000 папок. Проекту почти 10 лет, на нем поработало несколько поколений разработчиков разной квалификации. В какой-то момент, пару-тройку лет назад, а может и раньше, архитектура проекта «потекла». Разные модули и слои стали писаться в разных стандартах организации кода, возникли циклические зависимости между модулями. В итоге в SVN за долгие года образовалась свалка. Проект собирается, но совершенно шаманским способом.
Привести код к единому формату хранения. При этом сохранить историю изменений по каждому файлу и не останавливать процесс разработки.
Сохранить историю по одному файлу или папке в SVN довольно просто с помощью команды svn copy. При небольшом количестве файлов все можно сделать вручную.
С разбором большого проекта сложно. Пока будешь вручную разбирать 15 000 файлов, разработчики накоммитят новых изменений и их тоже нужно будет копировать. Замкнутый круг.
Нужна автоматизация. Скриптик, который раз! — и переводит проект в новую структуру.
Задача была выполнена, а побочным продуктом стал подход к написанию ANT-скриптов, который в большом программировании называется инкапсуляция. Хочу поделиться полученным подходом.
Предыстория
Имеется проект в SVN из 15 000 файлов и 5 000 папок. Проекту почти 10 лет, на нем поработало несколько поколений разработчиков разной квалификации. В какой-то момент, пару-тройку лет назад, а может и раньше, архитектура проекта «потекла». Разные модули и слои стали писаться в разных стандартах организации кода, возникли циклические зависимости между модулями. В итоге в SVN за долгие года образовалась свалка. Проект собирается, но совершенно шаманским способом.
Задача
Привести код к единому формату хранения. При этом сохранить историю изменений по каждому файлу и не останавливать процесс разработки.
Сложности
Сохранить историю по одному файлу или папке в SVN довольно просто с помощью команды svn copy. При небольшом количестве файлов все можно сделать вручную.
С разбором большого проекта сложно. Пока будешь вручную разбирать 15 000 файлов, разработчики накоммитят новых изменений и их тоже нужно будет копировать. Замкнутый круг.
Нужна автоматизация. Скриптик, который раз! — и переводит проект в новую структуру.
Результат
Задача была выполнена, а побочным продуктом стал подход к написанию ANT-скриптов, который в большом программировании называется инкапсуляция. Хочу поделиться полученным подходом.
Проектирование и рефакторинг → Одержимость красивым кодом, синдромом рефакторинга
В последнее время распространилась одержимость рефакторингом. Доходит до того, что некоторые программисты ставят ему больший приоритет, чем более важным вещам, таким как:
Если это доходит до крайности, и все, о чем заботится программист, является красота кода, он может попасть под синдром рефакторинга.
- Корректность
- Надежность
- Отслеживаемость
- Поддерживаемость
- …
Если это доходит до крайности, и все, о чем заботится программист, является красота кода, он может попасть под синдром рефакторинга.
C++ → Ветвления. Что с ними можно сделать
Мой прошлый пост вызвал огромный резонанс. Комментариев было не много, но я получил множество писем, а некоторые читатели выступили даже с открытыми заявлениями (там, правда, преобладают наезды на меня лично и на хабр в целом, но есть и мысли по существу вопроса). Поэтому я решил продолжить писать в жанре «мои мысли по поводу вопросов известной компании». Этим постом я постараюсь решить две задачи: (i) ответить на вопросы и возражения читателей предыдущего поста и (ii) толкнуть в некотором смысле философскую мысль о безIFовом программировании. Букв получилось довольно много, но те, кому интересно только что-то одно из поста, могут пропустить половину.И ещё: этот топик (как и прошлый) — не наезд ни на кого. Просто интересно порассуждать об интересных вопросах. Здесь нет подтекста, намёка, вызова. Параноиков и сторонников теорий заговоров попрошу расслабиться.
В этот раз хотел бы взглянуть на вопрос 4.
PHP → Немного о прелестях NetBeans + php
Я, как человек, связанный университетом с Java, следил за развитием NetBeans практически с момента его становления изначально меня принудил ей пользоваться мне показал эту IDE мой учитель — Вадим Монахов (с гордостью обнаружил, что ссылка на него ведет с wikipedia, раздел литература). Сейчас часто сталкиваюсь с тем, что программисты PHP пишут говнокод ссылаясь на недоразвитость IDE не умеют делать Refactoring и многих из них останавливает отсутствие автоматизированных средств. Собственно, я решил отобрать у них этот аргумент: средства есть и сегодня я рассмотрю NetBeans как среду разработки для PHP и продемонстрирую заложенную в нее мощь.
.NET → 3й подкаст Петербургской группы Alt.Net
Литература для .Net-разработчика
Участники: dnesteruk & butaji - CLR via C# (Richter, 3rd edition coming up), C# in a nutshell, C# in Depth (skeet)
- Design Patterns (GoF), Design Patterns in C#, Refactoring to Patterns, DP in Java
- Martin Fowler Signature Series: PoEAA, xUnit Test Patterns, Integration Patterns, Test-Driven Development, Implementation Patterns
- Agile Software Development on C++ and C# (both 1st and 2nd versions) by Robert C Martin
- DDD, Applying DDD by Nilsson, DDD with C#/.NET: Problem — Design — Solution
- Generative Programming
- Expert F# — the book of rulership, also Foundations of F# and F# for scientists
- Building DSLs in Boo
Non-.Net
- The C++ programming language, Essential STL :) (hey, some of us do interop)
- Learn Ruby, Python Cookbook
- CodeComplete, Code Craft
Domain-specific books:
- 4 books ASP.NET by Dino Esposito
- Applications = Code + Markup
- Asp.Net MVC in Action, Asp.Net MVC Quickly
- Inside WSS 3.0
прослушан 377 раз
JavaScript → Повышение качества javascript кода. JSLint

Случилось так, что в последнее время мне пришлось читать и рефакторить очень много ужасного javascript-кода. Работа с таким кодом стоит очень многих нервов при сопровождении, да и писать/отлаживать такой код не приятно. Мысли о том, что заставляет людей писать плохой код и как с этим можно бороться заставили меня писать эту статью. Не претендую на сколь-нибудь полное раскрытие темы борьбы за качество кода, хочу рассмотреть лишь некоторые аспекты, доставляющие наибольшее количество проблем. В качестве основного инструмента оптимизации качества кода предлагаю использовать JSLint, который несмотря на все плюсы, не является панацеей и может служить лишь отправной точкой для дальнейшего улучшения кода.
Всех у кого хоть раз болела голова при написании/чтении javascript кода прошу под кат.
Персональные блоги → Bug Driven Development
Разработка основанная на багах. Баги поступают от клиентов, от тестировщиков. Баги поступают даже от своей собственной программы, когда мы начинаем деБАЖить (deBUG). Где выход и что делать. Одна из таблеток — TDD.
см. видеокаст — rutube.ru/tracks/2366112.html
Интересно узнать ваше мнение на такой способ разработки. Так же дайте отзыв по качеству и компановке материала, чтобы в следующий раз было лучше :)
см. видеокаст — rutube.ru/tracks/2366112.html
Интересно узнать ваше мнение на такой способ разработки. Так же дайте отзыв по качеству и компановке материала, чтобы в следующий раз было лучше :)
