Как писать корректный код сразу
От: krokodil955  
Дата: 27.10.05 22:54
Оценка: :))) :))
Всем здрям!
Вопрос может конечно и банальный но все-таки подскажите:
как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.
Заранее благодарен.
Re: Как писать корректный код сразу
От: GlebZ Россия  
Дата: 27.10.05 23:09
Оценка: +2 -2
Здравствуйте, krokodil955, Вы писали:

K>Всем здрям!

K>Вопрос может конечно и банальный но все-таки подскажите:
K>как сразу писать качественный код
Никак. По крайней мере не научился. Некачественно написать легче. И сразу же доработать напильником для качества.
K>(т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.
http://www.rsdn.ru/res/book/prog/refactoring.xml
Автор(ы): Мартин Фаулер, Кент Бек, Джон Брант, Дон Робертс, Уильям Апдайк

К тому времени как объектная технология — в частности язык Java — стала обычным
делом, появилось большое количество плохо спроектированных, неэффективных и
малопригодных к сопровождению и расширению приложений. Профессиональные
разработчики программных систем все яснее видят, насколько трудно иметь дело с
таким "неоптимальным" наследием. Уже несколько лет эксперты в области объектного
программирования применяют расширяющийся набор приемов, призванных улучшить
структурную целостность и производительность таких программ. Этот подход,
называемый рефакторингом, до сего момента оставался территорией экспертов,
поскольку не предпринималось попыток перевести профессиональные знания в форму,
доступную всем разработчикам.В данной книге Мартин Фаулер показывает,
как разработчики программного обеспечения могут реализовать существенные выгоды
этой новой технологии, где обычно лежат возможности изменения структуры и как
приступить к переделке плохого проекта в хороший. Каждый шаг рефакторинга прост
— на первый взгляд слишком прост, чтобы сделать его. Это может быть перемещение
поля из одного класса в другой, вынесение какого-то кода из метода и превращение
его в самостоятельный метод или даже перемещение кода по иерархии классов.
Каждый отдельный шаг может показаться элементарным, но совокупный эффект таких
малых изменений в состоянии радикально улучшить проект. Рефакторинг является
верным способом предотвращения распада программы. Помимо описания различных
приемов автор предоставляет подробный каталог, включающий более семидесяти
рефакторингов, а также полезные указания по их применению, пошаговые инструкции
и практические примеры. Примеры написаны на Java, но идеи применимы к любому
объектно-ориентированному языку программирования.

http://www.rsdn.ru/res/book/prog/bek.xml
Автор(ы): Сэм Канер, Джек Фолк, Енг Кек Нгуен

Книга именитых специалистов в области разработки программного обеспечения
посвящена одному из наиболее важных и нетривиальных аспектов в рамках
процесса создания сложных программных систем. Книгу отличает, прежде
всего, привязка к условиям реального мира на примерах известных
компаний-разработчиков, находящихся в Силиконовой долине. Подробно
рассматривается широкий спектр вопросов: от организации процесса
тестирования до собственно тестирования проекта, кода, документации и
т.д.

http://www.rsdn.ru/res/book/prog/beck.xml
Автор(ы): Сэм Канер, Джек Фолк, Енг Кек Нгуен

Книга именитых специалистов в области разработки программного обеспечения
посвящена одному из наиболее важных и нетривиальных аспектов в рамках
процесса создания сложных программных систем. Книгу отличает, прежде
всего, привязка к условиям реального мира на примерах известных
компаний-разработчиков, находящихся в Силиконовой долине. Подробно
рассматривается широкий спектр вопросов: от организации процесса
тестирования до собственно тестирования проекта, кода, документации и
т.д.

Вобщем, ключевые слова — экстремальное программирование, TDD, рефакторинг. Там тестирование используется как методика на этапе написания кода. То что нужно программисту.

http://www.rsdn.ru/res/book/prog/kaner.xml
Автор(ы): Сэм Канер, Джек Фолк, Енг Кек Нгуен

Книга именитых специалистов в области разработки программного обеспечения
посвящена одному из наиболее важных и нетривиальных аспектов в рамках
процесса создания сложных программных систем. Книгу отличает, прежде
всего, привязка к условиям реального мира на примерах известных
компаний-разработчиков, находящихся в Силиконовой долине. Подробно
рассматривается широкий спектр вопросов: от организации процесса
тестирования до собственно тестирования проекта, кода, документации и
т.д.

Это если PM или группа тестирования. Или просто интересно.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Как писать корректный код сразу
От: OnThink Россия http://vassilsanych.livejournal.com
Дата: 28.10.05 06:14
Оценка: +1 -5
Здравствуйте, krokodil955, Вы писали:

K>Всем здрям!

K>Вопрос может конечно и банальный но все-таки подскажите:
K>как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.

Эээ
Думать не пробовал, когда код пишешь?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Как писать корректный код сразу
От: ArhAngelVezel Россия  
Дата: 28.10.05 06:40
Оценка:
Здравствуйте, krokodil955, Вы писали:

K>как сразу писать качественный код

Пописать самому лет 5-6???
Re[2]: Как писать корректный код сразу
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 28.10.05 08:04
Оценка: :)
Здравствуйте, ArhAngelVezel, Вы писали:

K>>как сразу писать качественный код

AAV>Пописать самому лет 5-6???

5-6?
Скорее уж 15-16. Или 25-26.

Как следствие -- код лучше вообще не писать
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: Как писать корректный код сразу
От: ArhAngelVezel Россия  
Дата: 28.10.05 09:07
Оценка: +1 :)
Здравствуйте, eao197, Вы писали:

E>5-6?

Обычно подобные вопросы через это время сами проходят, остаются другие

E>Как следствие -- код лучше вообще не писать

писать или не писать, вот в чем вопрос... не хотя бы для интереса писать все же стоит
Re: Как писать корректный код сразу
От: Eugene Kilachkoff Россия  
Дата: 28.10.05 11:37
Оценка:
Здравствуйте, krokodil955, Вы писали:

K>Всем здрям!

K>Вопрос может конечно и банальный но все-таки подскажите:
K>как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.
http://www.rsdn.ru/res/book/prog/programming_pearls.xml
Автор(ы): Джон Бентли

Эта книга написана для программистов. Хороший программист должен знать все, что
написано до него, только тогда он будет писать хорошие программы. Главы этой
книги посвящены наиболее привлекательному аспекту профессии программиста:
жемчужинам программирования, рождающимся за пределами работы, в области фантазии
и творчества. В них рассматриваются: постановка задач, теория алгоритмов,
структуры данных, вопросы повышения эффективности кода, а также верификация и
тестирование программ.

http://www.williamspublishing.com/Books/5-8459-0679-2.html

Ну и, как ни банально, думать головой.
Re[2]: Как писать корректный код сразу
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 28.10.05 11:58
Оценка: 3 (1) :))) :))) :))) :))) :)))
Здравствуйте, Eugene Kilachkoff, Вы писали:

K>>как сразу писать качественный код


EK>Ну и, как ни банально, думать головой.


"Думать головой это грязный хак" (c) ru.os.cmp
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[3]: Как писать корректный код сразу
От: krokodil955  
Дата: 28.10.05 19:00
Оценка:
Спасибо за ответы.
Повторять как мантру...
От: SilverCloud Россия http://rodonist.wordpress.com
Дата: 12.11.05 14:04
Оценка: 25 (2) :))
... "Все программисты делают ошибки. Я — программист, значит, мой код тоже содержит ошибки. Мой код будет содержать ошибки. Даже самые крутые гуру делают ошибки."
Через некоторое время придёт осознание, а вслед за ним — просветление.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Как писать корректный код сразу
От: IO Украина  
Дата: 12.11.05 15:11
Оценка:
Здравствуйте, krokodil955, Вы писали:

K>Всем здрям!

K>Вопрос может конечно и банальный но все-таки подскажите:
K>как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.
K>Заранее благодарен.

Имхо, не так уж это нереально.
Просто при написании надо запустить в голове много фоновых процессов, которые контролируют качество кода и писать медленно.
Re: Как писать корректный код сразу
От: Геннадий Майко США  
Дата: 13.11.05 07:52
Оценка: +1
Здравствуйте, krokodil955, Вы писали:

K>Всем здрям!

K>Вопрос может конечно и банальный но все-таки подскажите:
K>как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.
--
Много полезной конкретной информации можно найти в книге "Code Complete" by Steve McConnell.

C уважением,
Геннадий Майко.
Re: Как писать корректный код сразу
От: ie Россия http://ziez.blogspot.com/
Дата: 14.11.05 04:17
Оценка:
Здравствуйте, krokodil955, Вы писали:

K>как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.


А что называть качественным кодом? Я всегда считал, что это код, который учитывает все ньюансы системы/приложения (в том числе и внешнее воздействие на нее/него), возникающие на стадии тестирования и (!)эксплуатации. Беда в том, что на стадиях проектирования и разработки, все эти ньюансы не известны. Т.о. осмелюсь заметить, что ИМХО в 100% случаев писать качественный код — это фантастика.

И как говорил Edward A Berard (немного не о том, но суть та же):

Walking on water and developing software from specification are easy, if both are frozen.

Превратим окружающую нас среду в воскресенье.
Re: Повторять как мантру...
От: ZevS Россия  
Дата: 14.11.05 15:41
Оценка:
Здравствуйте, SilverCloud, Вы писали:

SC>... "Все программисты делают ошибки. Я — программист, значит, мой код тоже содержит ошибки. Мой код будет содержать ошибки. Даже самые крутые гуру делают ошибки."

SC>Через некоторое время придёт осознание, а вслед за ним — просветление.

"...Человеку несвойственно совершенство, и оно является необходимым лишь в немногих сферах его деятельности. Мне кажется, что при освоении программирования труднее всего привыкнуть к требованию совершенства..."

Фредерик П.Брукс. "Мифический человеко-месяц или как создатся программные системы"

Re[2]: Как писать корректный код сразу
От: vitaly_spb Россия  
Дата: 14.11.05 15:48
Оценка:
OT>Думать не пробовал, когда код пишешь?

Вот просто интересно, за что человеку минусов понаставили. Минус это как известно "Не согласен" (см. tooltip), значит Nickolay Ch и Plague не согласны что надо думать?
...Ei incumbit probatio, qui dicit, non qui negat...
Re: Как писать корректный код сразу
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 14.11.05 16:51
Оценка:
Здравствуйте, krokodil955, Вы писали:

K>Вопрос может конечно и банальный но все-таки подскажите:

K>как сразу писать качественный код (т.е. с минимальным числом алгоритмических ошибок и чтобы как можно меньше их исправлять на стадии тестирования) и киньте плз любую инфу на эту тему а также по тестированию ПО.

Ну... если тебя не интересует время и в тебе есть литературная струнка, то можешь побробовать литературное программирование (оно же иногда упоминимается как содержательное или документированное, но последний термин не совсем точно отражает суть).
Re[3]: Как писать корректный код сразу
От: Nickolay Ch  
Дата: 14.11.05 21:52
Оценка: +2
Здравствуйте, vitaly_spb, Вы писали:

OT>>Думать не пробовал, когда код пишешь?


_>Вот просто интересно, за что человеку минусов понаставили. Минус это как известно "Не согласен" (см. tooltip), значит Nickolay Ch и Plague не согласны что надо думать?


Лично я не согласен с такой формой ответа.
Вам бы понравилось, если б я в ответ на Ваш вопрос написал то же самое?
Re[2]: Как писать корректный код сразу
От: Stoune  
Дата: 14.11.05 22:34
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, krokodil955, Вы писали:


K>>Всем здрям!

K>>Вопрос может конечно и банальный но все-таки подскажите:
K>>как сразу писать качественный код
GZ>Никак. По крайней мере не научился. Некачественно написать легче. И сразу же доработать напильником для качества.
Кажется у Кернигана было, научится прграмировать можно только програмируя. Это как езда на велосипеде можно прочитать об этом десятки книжек, но без практики вы на нём не поедете и наверняка пока научитесь набъёте немало шишек, а может и охота этим заниматся пропадёт, хотя умные книжки тоже надо читать, но надо подкреплять их практическим опытом закрепляя прочитаное.

GZ>http://www.rsdn.ru/res/book/prog/refactoring.xml
Автор(ы): Мартин Фаулер, Кент Бек, Джон Брант, Дон Робертс, Уильям Апдайк

К тому времени как объектная технология — в частности язык Java — стала обычным
делом, появилось большое количество плохо спроектированных, неэффективных и
малопригодных к сопровождению и расширению приложений. Профессиональные
разработчики программных систем все яснее видят, насколько трудно иметь дело с
таким "неоптимальным" наследием. Уже несколько лет эксперты в области объектного
программирования применяют расширяющийся набор приемов, призванных улучшить
структурную целостность и производительность таких программ. Этот подход,
называемый рефакторингом, до сего момента оставался территорией экспертов,
поскольку не предпринималось попыток перевести профессиональные знания в форму,
доступную всем разработчикам.В данной книге Мартин Фаулер показывает,
как разработчики программного обеспечения могут реализовать существенные выгоды
этой новой технологии, где обычно лежат возможности изменения структуры и как
приступить к переделке плохого проекта в хороший. Каждый шаг рефакторинга прост
— на первый взгляд слишком прост, чтобы сделать его. Это может быть перемещение
поля из одного класса в другой, вынесение какого-то кода из метода и превращение
его в самостоятельный метод или даже перемещение кода по иерархии классов.
Каждый отдельный шаг может показаться элементарным, но совокупный эффект таких
малых изменений в состоянии радикально улучшить проект. Рефакторинг является
верным способом предотвращения распада программы. Помимо описания различных
приемов автор предоставляет подробный каталог, включающий более семидесяти
рефакторингов, а также полезные указания по их применению, пошаговые инструкции
и практические примеры. Примеры написаны на Java, но идеи применимы к любому
объектно-ориентированному языку программирования.

GZ>http://www.rsdn.ru/res/book/prog/bek.xml
Автор(ы): Сэм Канер, Джек Фолк, Енг Кек Нгуен

Книга именитых специалистов в области разработки программного обеспечения
посвящена одному из наиболее важных и нетривиальных аспектов в рамках
процесса создания сложных программных систем. Книгу отличает, прежде
всего, привязка к условиям реального мира на примерах известных
компаний-разработчиков, находящихся в Силиконовой долине. Подробно
рассматривается широкий спектр вопросов: от организации процесса
тестирования до собственно тестирования проекта, кода, документации и
т.д.

GZ>http://www.rsdn.ru/res/book/prog/beck.xml
Автор(ы): Сэм Канер, Джек Фолк, Енг Кек Нгуен

Книга именитых специалистов в области разработки программного обеспечения
посвящена одному из наиболее важных и нетривиальных аспектов в рамках
процесса создания сложных программных систем. Книгу отличает, прежде
всего, привязка к условиям реального мира на примерах известных
компаний-разработчиков, находящихся в Силиконовой долине. Подробно
рассматривается широкий спектр вопросов: от организации процесса
тестирования до собственно тестирования проекта, кода, документации и
т.д.

GZ>Вобщем, ключевые слова — экстремальное программирование, TDD, рефакторинг. Там тестирование используется как методика на этапе написания кода. То что нужно программисту.
По собственному опыту, тот же рефакторинг с неплогохо качества, по вашему мнению, кода даёт значительно лучшие результаты чем написать сразу тяп-ляп, а потом доводить до ума. Просто принятые из самого начала неверные решения изза отсутствия этапа более детального анализа просто не могут привести к качественому решению.
Да XP это круто при небольшой команде и ограниченых ресурсах, но хорошие результаты как по мне получаются только когда каманда разработчиков, по крайней мере большая её часть, достаточно высокого уровня. Это как разводной ключ, умелый сантехник за раз им соединения соединит, а неумелый только резьбу сорвёт(гы просто недавно краны менял )
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re: Как писать корректный код сразу
От: reductor  
Дата: 14.11.05 22:52
Оценка: +1
Не флейма ради

Лично я для себя данную проблему решил сменой основного языка на тот, который не пропускает большинство распространенных ошибок
Это после многих лет профессионального программирования

Если такое решение устраивает, то добро пожаловать в формальное программирование и на http://www.haskell.org
Re[2]: Как писать корректный код сразу
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.11.05 23:23
Оценка: +1
reductor wrote:
>
> Лично я для себя данную проблему решил сменой основного языка на тот,
> который не пропускает большинство распространенных ошибок
> Это после многих лет профессионального программирования
>
> Если такое решение устраивает, то добро пожаловать в формальное
> программирование и на http://www.haskell.org

Меня интересует, понимания ради, а не флейму для , как Хаскель
вписывается в, скажем так, коммерческое (не академическое) программирование.

А именно:
1. Где брать кадры?
2. Как преодолевать естественное сопротивление менеджеров?
3. Для каких практических проектов он подходит? (только не надо
говорить, "для всех" — это отписка, и я сразу приведу опровергающий пример).
4. Насколько получающиеся программы ресурсоемки? Тут бы хотелось
какой-то практический ответ, а не сравнение с C/C++/C#/Java/Perl/... —
такие сравнения не имеют смысла.
5. Насколько хорошо получающиеся программы живут под операционными
системами, которыми пользуются пользователи?
Posted via RSDN NNTP Server 1.9
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.