Всем здрям!
Вопрос может конечно и банальный но все-таки подскажите:
как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.
Заранее благодарен.
Здравствуйте, krokodil955, Вы писали:
K>Всем здрям! K>Вопрос может конечно и банальный но все-таки подскажите: K>как сразу писать качественный код
Никак. По крайней мере не научился. Некачественно написать легче. И сразу же доработать напильником для качества. K>(т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО. http://www.rsdn.ru/res/book/prog/refactoring.xml
Вобщем, ключевые слова — экстремальное программирование, TDD, рефакторинг. Там тестирование используется как методика на этапе написания кода. То что нужно программисту.
Здравствуйте, krokodil955, Вы писали:
K>Всем здрям! K>Вопрос может конечно и банальный но все-таки подскажите: K>как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.
Здравствуйте, eao197, Вы писали:
E>5-6?
Обычно подобные вопросы через это время сами проходят, остаются другие
E>Как следствие -- код лучше вообще не писать
писать или не писать, вот в чем вопрос... не хотя бы для интереса писать все же стоит
Здравствуйте, krokodil955, Вы писали:
K>Всем здрям! K>Вопрос может конечно и банальный но все-таки подскажите: K>как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО. http://www.rsdn.ru/res/book/prog/programming_pearls.xml
... "Все программисты делают ошибки. Я — программист, значит, мой код тоже содержит ошибки. Мой код будет содержать ошибки. Даже самые крутые гуру делают ошибки."
Через некоторое время придёт осознание, а вслед за ним — просветление.
Здравствуйте, krokodil955, Вы писали:
K>Всем здрям! K>Вопрос может конечно и банальный но все-таки подскажите: K>как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО. K>Заранее благодарен.
Имхо, не так уж это нереально.
Просто при написании надо запустить в голове много фоновых процессов, которые контролируют качество кода и писать медленно.
Здравствуйте, krokodil955, Вы писали:
K>Всем здрям! K>Вопрос может конечно и банальный но все-таки подскажите: K>как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.
--
Много полезной конкретной информации можно найти в книге "Code Complete" by Steve McConnell.
Здравствуйте, krokodil955, Вы писали:
K>как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.
А что называть качественным кодом? Я всегда считал, что это код, который учитывает все ньюансы системы/приложения (в том числе и внешнее воздействие на нее/него), возникающие на стадии тестирования и (!)эксплуатации. Беда в том, что на стадиях проектирования и разработки, все эти ньюансы не известны. Т.о. осмелюсь заметить, что ИМХО в 100% случаев писать качественный код — это фантастика.
И как говорил Edward A Berard (немного не о том, но суть та же):
Walking on water and developing software from specification are easy, if both are frozen.
Здравствуйте, SilverCloud, Вы писали:
SC>... "Все программисты делают ошибки. Я — программист, значит, мой код тоже содержит ошибки. Мой код будет содержать ошибки. Даже самые крутые гуру делают ошибки." SC>Через некоторое время придёт осознание, а вслед за ним — просветление.
"...Человеку несвойственно совершенство, и оно является необходимым лишь в немногих сферах его деятельности. Мне кажется, что при освоении программирования труднее всего привыкнуть к требованию совершенства..."
Фредерик П.Брукс. "Мифический человеко-месяц или как создатся программные системы"
Вот просто интересно, за что человеку минусов понаставили. Минус это как известно "Не согласен" (см. tooltip), значит Nickolay Ch и Plague не согласны что надо думать?
...Ei incumbit probatio, qui dicit, non qui negat...
Здравствуйте, krokodil955, Вы писали:
K>Вопрос может конечно и банальный но все-таки подскажите: K>как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.
Ну... если тебя не интересует время и в тебе есть литературная струнка, то можешь побробовать литературное программирование (оно же иногда упоминимается как содержательное или документированное, но последний термин не совсем точно отражает суть).
Здравствуйте, vitaly_spb, Вы писали:
OT>>Думать не пробовал, когда код пишешь?
_>Вот просто интересно, за что человеку минусов понаставили. Минус это как известно "Не согласен" (см. tooltip), значит Nickolay Ch и Plague не согласны что надо думать?
Лично я не согласен с такой формой ответа.
Вам бы понравилось, если б я в ответ на Ваш вопрос написал то же самое?
Здравствуйте, GlebZ, Вы писали:
GZ>Здравствуйте, krokodil955, Вы писали:
K>>Всем здрям! K>>Вопрос может конечно и банальный но все-таки подскажите: K>>как сразу писать качественный код GZ>Никак. По крайней мере не научился. Некачественно написать легче. И сразу же доработать напильником для качества.
Кажется у Кернигана было, научится прграмировать можно только програмируя. Это как езда на велосипеде можно прочитать об этом десятки книжек, но без практики вы на нём не поедете и наверняка пока научитесь набъёте немало шишек, а может и охота этим заниматся пропадёт, хотя умные книжки тоже надо читать, но надо подкреплять их практическим опытом закрепляя прочитаное.
GZ>http://www.rsdn.ru/res/book/prog/refactoring.xml
GZ>Вобщем, ключевые слова — экстремальное программирование, TDD, рефакторинг. Там тестирование используется как методика на этапе написания кода. То что нужно программисту.
По собственному опыту, тот же рефакторинг с неплогохо качества, по вашему мнению, кода даёт значительно лучшие результаты чем написать сразу тяп-ляп, а потом доводить до ума. Просто принятые из самого начала неверные решения изза отсутствия этапа более детального анализа просто не могут привести к качественому решению.
Да XP это круто при небольшой команде и ограниченых ресурсах, но хорошие результаты как по мне получаются только когда каманда разработчиков, по крайней мере большая её часть, достаточно высокого уровня. Это как разводной ключ, умелый сантехник за раз им соединения соединит, а неумелый только резьбу сорвёт(гы просто недавно краны менял )
Лично я для себя данную проблему решил сменой основного языка на тот, который не пропускает большинство распространенных ошибок
Это после многих лет профессионального программирования
Если такое решение устраивает, то добро пожаловать в формальное программирование и на http://www.haskell.org
reductor wrote: > > Лично я для себя данную проблему решил сменой основного языка на тот, > который не пропускает большинство распространенных ошибок > Это после многих лет профессионального программирования > > Если такое решение устраивает, то добро пожаловать в формальное > программирование и на http://www.haskell.org
Меня интересует, понимания ради, а не флейму для , как Хаскель
вписывается в, скажем так, коммерческое (не академическое) программирование.
А именно:
1. Где брать кадры?
2. Как преодолевать естественное сопротивление менеджеров?
3. Для каких практических проектов он подходит? (только не надо
говорить, "для всех" — это отписка, и я сразу приведу опровергающий пример).
4. Насколько получающиеся программы ресурсоемки? Тут бы хотелось
какой-то практический ответ, а не сравнение с C/C++/C#/Java/Perl/... —
такие сравнения не имеют смысла.
5. Насколько хорошо получающиеся программы живут под операционными
системами, которыми пользуются пользователи?