Фраза, затертая до дыр, но до сих пор не растерявшая своей магии... Например, в разработке программного обеспечения.
суббота, 27 июня 2015 г.
воскресенье, 8 марта 2015 г.
Полиморфизм?
Вот в таком классе мне недавно пришлось исправлять ошибку:
public abstract class UpdaterBase {
protected abstract IMyControl CreateMyControl();
protected abstract IMySettingsStore CreateMySettingsStore(IMyControl control);
public void Update(MyTarget target) {
if(target != null && !MySettingsHelper.HasSettings(target)) {
IMyControl control = CreateMyControl();
control.Fields["Priority"].Area = MyArea.ColumnArea;
control.Fields["Subject"].Area = MyArea.DataArea;
control.Fields["AssignedTo.DisplayName"].Area = MyArea.RowArea;
MySettingsHelper.SaveSettings(CreateMySettingsStore(control), target);
}
}
}
protected abstract IMyControl CreateMyControl();
protected abstract IMySettingsStore CreateMySettingsStore(IMyControl control);
public void Update(MyTarget target) {
if(target != null && !MySettingsHelper.HasSettings(target)) {
IMyControl control = CreateMyControl();
control.Fields["Priority"].Area = MyArea.ColumnArea;
control.Fields["Subject"].Area = MyArea.DataArea;
control.Fields["AssignedTo.DisplayName"].Area = MyArea.RowArea;
MySettingsHelper.SaveSettings(CreateMySettingsStore(control), target);
}
}
}
На первый взгляд этот код выглядит нормально: базовая логика для использования и перекрывания и все такое про ООП и полиморфизм. И даже наследники есть:
среда, 22 октября 2014 г.
Овраг или гора?
Создание программы течет плавно как река. Только иногда неожиданно заворачивает...
В моей работе поворот чаще всего происходил всего лишь в трех местах:
1. на передаче задания от заказчика к программисту
2. на передаче описания от программиста к техническому писателю
3. на передаче продукта от программиста в службу поддержки
Заказчик знает, для чего он заказывает программу. Он знает процесс работы сотрудников своей фирмы, изучил трудности, посчитал сколько фирма зарабатывает, сколько и на каких этапах теряет и решил на каком этапе и как именно этот баланс можно улучшить. Выбрал исполнителя и сделал Заказ.
Дальше начинается работа исполнителя. На результат влияют как способности исполнителя, так и особенности характера заказчика. "Я плачУ - ты работаешь", "Разберись сам", "Я все уже объяснил", "Да тут все просто" могут свести на нет все способности.
.... выходят качели:
Но программист работает по ночам, старается доделать сколько можно и таки доделывает...
"Отлично получилось," - подумал программист и в двух словах изложил все техническому писателю. Осталось сделать пост в блоге, рекламные сообщения в твиттере, описать основные вещи в документации, сделать примеры, снять обучающие видосы и провести онлайн тренинги. Как два пальца... Удивительно, но начинается второй виток "Заказчик-Исполнитель"... Снова звучат "Разберись сам", "Я все уже объяснил" и "Да тут все просто". Писатель пытается и делает что может.
И снова полуаются качели... Страдает смысл в опубликованных материалах: не так, не для тех людей, не на тех примерах, вообще не то. Программист хотел сказать одно, сказал второе, писатель услышал третье, понял четвертое, переработал для публичного показа в пятое и ... все недовольны.
"Ну, теперь-то уж точно все, " - думают программист и писатель после успешной работы над описанием программы. И... передают ее на сопровождение новым Исполнителям со словами "Разберись сам", "Я все уже объяснил" и "Да тут все просто".
В моей работе поворот чаще всего происходил всего лишь в трех местах:
1. на передаче задания от заказчика к программисту
2. на передаче описания от программиста к техническому писателю
3. на передаче продукта от программиста в службу поддержки
Заказчик знает, для чего он заказывает программу. Он знает процесс работы сотрудников своей фирмы, изучил трудности, посчитал сколько фирма зарабатывает, сколько и на каких этапах теряет и решил на каком этапе и как именно этот баланс можно улучшить. Выбрал исполнителя и сделал Заказ.
Дальше начинается работа исполнителя. На результат влияют как способности исполнителя, так и особенности характера заказчика. "Я плачУ - ты работаешь", "Разберись сам", "Я все уже объяснил", "Да тут все просто" могут свести на нет все способности.
.... выходят качели:
Но программист работает по ночам, старается доделать сколько можно и таки доделывает...
"Отлично получилось," - подумал программист и в двух словах изложил все техническому писателю. Осталось сделать пост в блоге, рекламные сообщения в твиттере, описать основные вещи в документации, сделать примеры, снять обучающие видосы и провести онлайн тренинги. Как два пальца... Удивительно, но начинается второй виток "Заказчик-Исполнитель"... Снова звучат "Разберись сам", "Я все уже объяснил" и "Да тут все просто". Писатель пытается и делает что может.
И снова полуаются качели... Страдает смысл в опубликованных материалах: не так, не для тех людей, не на тех примерах, вообще не то. Программист хотел сказать одно, сказал второе, писатель услышал третье, понял четвертое, переработал для публичного показа в пятое и ... все недовольны.
"Ну, теперь-то уж точно все, " - думают программист и писатель после успешной работы над описанием программы. И... передают ее на сопровождение новым Исполнителям со словами "Разберись сам", "Я все уже объяснил" и "Да тут все просто".
вторник, 2 сентября 2014 г.
Как пасти котов?
Да, не читал. И нет, не осуждаю. (Как пасти котов - это книга, если чё)
Просто красивое название так же как и "Психбольница в руках пациентов".
Это смотря что хочется получить...
пятница, 18 апреля 2014 г.
четверг, 3 апреля 2014 г.
Программирование - это как лук.
У лука есть слои. И у программирования есть слои.
В самом центре расположена идея. Я не знаю откуда они появляются, но начинается все с некой конкретной идеи как именно можно заработать деньги с помощью такого инструмента как программирование и в такой отрасли как информационные технологии. Или даже с желания/необходимости заработать денег (хотя встречаются и другие причины), а потом уже появляется конкретная идея. И уже вокруг этой идеи нарастают следующие слои...
вторник, 1 апреля 2014 г.
Где кончается кодирование и начинается архитектура и проектирование?
"Зачем нам какие-то интерфейсы и диаграммы классов? Это же JavaScript!" К чему часто добавляется аргумент "изобретенный и сделанный за 10 дней" (JavaScript + История создания Javascript)
Согласен, интерфейсы и диаграммы именно в виде картинок (или других графических клубков из линий, квадратиков и кружков) бывают не нужны. Но понимать правила, допущения и ограничения при взаимодействие двух участков кода все таки надо и несколько моих личных десятилетий создания программ вопят, что "кроилово ведет к попадалову", зачастую не разовому, а очень даже регулярному, на несколько лет и с хорошим ростом цены на каждый случай...
Согласен, интерфейсы и диаграммы именно в виде картинок (или других графических клубков из линий, квадратиков и кружков) бывают не нужны. Но понимать правила, допущения и ограничения при взаимодействие двух участков кода все таки надо и несколько моих личных десятилетий создания программ вопят, что "кроилово ведет к попадалову", зачастую не разовому, а очень даже регулярному, на несколько лет и с хорошим ростом цены на каждый случай...
Кроилово номер раз:
Подписаться на:
Сообщения (Atom)





