После «прощального» поста о «NetBeans tips & tricks» перешел на еще одну замечательную IDE — PhpStorm. И хочу начать серию статей с заметки о том, как эта IDE облегчила процесс рефакторинга для меня.
Рубрика «refactoring» - 4
PhpStorm: Refactoring
2012-11-14 в 11:51, admin, рубрики: IDE, php, phpstorm, refactoring, Веб-разработка, метки: IDE, PHP, phpstorm, refactoringМожет ли ваш язык программирования делать такое?
2012-07-18 в 15:26, admin, рубрики: c#.net, functional programming, refactoring, Программирование, метки: c#.net, functional programming, refactoringНедавно я прочитал статью Джоэла Спольски “Can your programming language do this?” и она настолько сильно пришлась мне по душе, что я решил перевести ее. Но не просто так, а добавить немного от себя. А именно вместо примеров на JavaScript (использованных Джоэлем в оригинале) я решил написать примеры на С#, который мне на сегодняшний день ближе. Собственно результат и представляю на суд сообществу под катом.
Другой взгляд на эволюцию гадкого утёнка
2012-07-09 в 15:25, admin, рубрики: php, refactoring, Программирование, Проектирование и рефакторинг, метки: PHP, refactoring Я с большим энтузиазмом отношусь к любым попыткам улучшить общую культуру разработки в таком неоднозначном сообществе, как сообщество PHP-разработчиков. Но видя некоторые инициативы хочется убиться об стену их немного поправить, чтобы не дай бог не пришлось работать с кодом, сильно отличающимся от моих представлений о совершенном коде.
Сегодня почему-то не сдержался, увидев топик Из гадкого утёнка в лебедя, или как исправить криворукий код и решил его исправить по-своему. Тем более автор попросил дать ссылки на другие варианты решений.
Другой взгляд на эволюцию гадкого утёнка или рефакторинг спагетти
2012-07-09 в 15:25, admin, рубрики: php, refactoring, Программирование, Проектирование и рефакторинг, метки: PHP, refactoring Я с большим энтузиазмом отношусь к любым попыткам улучшить общую культуру разработки в таком неоднозначном сообществе, как сообщество PHP-разработчиков. Но видя некоторые инициативы хочется убиться об стену их немного поправить, чтобы не дай бог не пришлось работать с кодом, сильно отличающимся от моих представлений о совершенном коде.
Сегодня почему-то не сдержался, увидев топик Из гадкого утёнка в лебедя, или как исправить криворукий код и решил его исправить по-своему. Тем более автор попросил дать ссылки на другие варианты решений.
Из гадкого утёнка в лебедя, или как исправить криворукий код
2012-07-09 в 10:28, admin, рубрики: mvc, php, refactoring, классы, Программирование, Проектирование и рефакторинг, рефакторинг, метки: mvc, PHP, refactoring, классы, рефакторинг
О чём это?
Многие начинают писать проект для работы с 1 малой задачей, не подразумевая, что данная история приведёт к многопользовательской системе управления, ну допустим, контентом или упаси, производством. И всё вроде здорово и классно, всё работает, пока не начинаешь понимать, что тот код, который написан — состоит целиком и полностью из костылей и хардкода.Читать полностью »
Басни на ночь — Хорошие имена как залог успеха
2012-04-16 в 7:04, admin, рубрики: clean code, refactoring, Проектирование и рефакторинг, метки: c++, clean code, refactoring
Доброго времени суток всем.
«Как лодку назовешь, так она и поплывет» — довольная известная фраза, которая вполне подходит к функциям, переменным, классам.
Сколько раз вам приходилось читать чужой (а бывает и свой код, каюсь, бывало подобное с моим же кодом) и разбираться с написанным месивом. Назначение переменных, функций, а то и вовсе классов не являются интуитивно понятным.
Казалось бы, есть переменная, есть ее имя, но ее назначение не понятно.
Например
enum Dates{
GET_FIRST,
GET_SECOND,
GET_BOTH,
None
}
Вот и думай, что этот енам делает эдакого в вашем коде. Вроде из названия перечисления понятно, что дело связано с датами. Может методу передаются две даты, и нужно выбрать какую то из них. А может в расчет нужно брать только определенные даты, первую и вторую из списка. А может что еще, может быть много мнений.Читать полностью »
.NET / [Из песочницы] Closures и полное копирование объекта
2012-02-22 в 5:59, admin, рубрики: .net, closure, lambda, refactoring, метки: .net, c++, closure, lambda, refactoringСегодня передо мной встала задача сделать полную копию объекта, то есть DeepClone. Рассмотрим некоторый код и я покажу какие проблемы при этом могут возникнуть и как их решить.
Исходный класс:
class ClassForClone { //here are value type fields public readonly A a; public readonly Lazy<string> lazy; protected void Func1() { //to to something; } public ClassForClone(A a) { this.a = a; lazy = new Lazy<string>(() => { // some calculations Func1(); return a.SomeText; }); } }
Воспользуемся функцией побитового копирования полей объекта Object.MemberwiseClone(). Она избавляет нас от монотонной работы копирования полей, но все поля с ссылочными типамиЧитать полностью »