Сначала умственное моделирование, затем тест, затем код. Произвожу объектную декомпозицию задач и воплощаю решения качественным ремонтопригодным объектно-ориентированным кодом с покрытием юнит-тестами. Делаю рефакторинг чужого кода. Производительность труда обеспечена повторным использованием кода и автоматической генерацией юнит-тестов (МетаПрограммирование). Знание надежных технологий проектирования и разработки программ. Умение писать код TRUE = понятный (Transparent), обоснованный (Reasonable), практичный (Usable) и образцовый (Exemplary). Когда программы становятся большими и сложными (что с ними всегда и происходит), адекватность, непротиворечивость и корректность самих спецификаций становится предметом сомнений, так что большие программы редко сопровождаются полными формальными доказательствами корректности. Вы обратились точно по адресу: при создании программ в использую объектно-ориентированное проектирование, что позволяет создавать программы в условиях, когда мы не полностью понимаем наши модели и их взаимодействие, и они могут измениться и преобразоваться, когда мы в большей степени поймем свои потребности. ООП позволяет продвигаться по спирали итеративной разработки, изменять и тестировать код. Это позволяет думать о концепциях, вместо того чтобы беспокоится о деталях. Сосредоточится на высокоуровневом "что требуется" вместо низкоуровневого "как это сделать". Изменяющимся требованиям легче следовать, когда приложение состоит из простых функций, которые нетрудно проверить. Нет хитрых побочных эффектов. Избавиться от ненужных абстракций с непредсказуемым поведением = сделать программу более предсказуемой и уменьшить количество возможных ошибок. Многие опытные разработчики не собираются решать проблемы по-другому. Легко написать чистые функции, но объединить их в законченное приложение - вот где творчество. Взглянуть на проблему с других сторон = увеличить количество способов решения. |