Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Теория программирования > Общие вопросы создания ПО
Перезагрузить страницу Некоторые принципы по написанию программ, для новичков
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
dect dect вне форума
Новичок
 
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.11.2008
По умолчанию 06.01.2010, 14:45

Хотелось бы услышать ваше мнение, по этим и другим вопросам)))

Моё приведено ниже,

- Модуль, это, как глава книги, их "надо листать как главы книги". Они не должны быть слишком большими, интерфейсы примерно на 2-4 экрана. Если больше, его можно разбить на 2 - к примеру модуль memory включить в модуль system. Список модулей это как содержание книги.

- Использовать константы - это очень пригодится во время написания. Если вы пишите и не знаете значение, либо значение должно водиться пользователем, или может измениться в будущем - это константа.

- Разбивать всё на функции - без этого абсолютно невозможно написать что-либо стоящее. Один и тот-же код не должен встречаться дважды - иначе абсолютно замучаетесь(!!!) исправлять, будут одни ошибки. Не бойтесь за снижение производительности, современные компиляторы хороши, в С++ к примеру, есть inline функции, по моим тестам, к примеру в компиляторе "Microsoft VS C++ 2008 Express Edition", в release версии, не удалось, насколько помню, засечь сколько-нибуть практически значимого снижения. В итоге тестов, хотя я и достаточно жестко отношусь к производительности, решил, всё же для себя, использовать только функции, никаких макрофункций (кроме тех случаев, где они логически уместны).

- Хочется сломать устоявшую парадигму (по крайне мере как я её понял): "главное побыстрее написать, и а бы как внедрить"; в RUP (честно скажу недавно о нём узнал), к примеру, есть принцип: "Постоянное обеспечение качества на всех этапах разработки проекта". Проблемы возникают когда программа становится сложной, и особенно тогда, когда вы сами же начинаете использовать свой код, как код более нижнего уровня. А при таком методе в нём обязательно возникнут ошибки... Что это значит? Это значит что вам придется опять вспоминать код нижнего уровня, придется разбираться в нём и переделывать его. Проще и быстрее было бы сразу сделать код нижнего уровня без ошибок. В итоге потеряв время в начале, в итоге всё равно выиграете время.

вот)))))) Если что просьба сильно не бить ))))
Ответить с цитированием
  (#2 (permalink)) Старый
Alexiski Alexiski на форуме
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 06.01.2010, 16:28

Как-то оно у Вас спорно сформулировано.. Вообще, на эти темы много написано всякого полезного совета, а вот универсального рецепта ("серебряной пули"), увы, не существует.
Ответить с цитированием
  (#3 (permalink)) Старый
andriano andriano вне форума
Member
 
Сообщений: 227
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 13.02.2006
По умолчанию 07.01.2010, 00:08

1. Я бы не стал вводит явняе ограничения на объем интерфейсной части. Модуль должен обладать функциональной завершенностью, а сколько строк это займет - не суть важно.

4. Прежде, чем садиться к компу, нужно тщательно распланировать все на листе бумаги.
Ответить с цитированием
  (#4 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 08.01.2010, 18:27

Цитата:
- Хочется сломать устоявшую парадигму (по крайне мере как я её понял): "главное побыстрее написать, и а бы как внедрить"; в RUP (честно скажу недавно о нём узнал), к примеру, есть принцип: "Постоянное обеспечение качества на всех этапах разработки проекта". Проблемы возникают когда программа становится сложной, и особенно тогда, когда вы сами же начинаете использовать свой код, как код более нижнего уровня. А при таком методе в нём обязательно возникнут ошибки...
Любопытно было бы узнать, а где это такая "устоявшаяся парадигма"?
Вообще-то, тот же достославный ГОСТ 19.102-77 тысяча-девятьсот-мохнатого года устанавливает определенные стадии и этапы разработки, следование которым позволяет вполне себе успешно завершить проект без фатальных ошибок.......

(Кстати, замечу, что если почитать RUP и наши советские ГОСТы - то станет понятно, что ГОСТы описали ту же самую процедуру разработки, только - сделали это на три-четыре десятилетия пораньше. Хе-хе. Не так то уж они плохи.)


The difference between theory and practice is that in theory, there is no difference between theory and practice, but in practice, there is.
Ответить с цитированием
  (#5 (permalink)) Старый
deckard deckard вне форума
Member
 
Сообщений: 77
Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 5 сообщениях
Регистрация: 04.03.2008
По умолчанию 09.01.2010, 00:10

To Влад.

http://www.caseclub.ru/gost/102-77.html

А вот как так получилось, что мы всё чаще выбираем язык программирования из Американских Штатов ?
Это нам ГОСТ предписывает ?
Вообще, если поглядеть на некоторые "советские компиляторы", то можно увидеть, что народ просто
занимался тем, что брал готовый "импортный" транслятор, и на полном серьёзе с помощью hex редактора
перебивал "end" на "кон". (В смысле - "конец"). Вы видимо не представляете, какой мягко говоря кошмар
и ужас идет уже в постсоветском производстве и разработках из-за стремления следовать таким вот
(да и не только таким) ГОСТАМ. Кстати, эти самые "ГОСТЫ" не предполагают ни интеллектуальной
собственности, ни лицензирования, ни платного программного обеспечения. Ни того элементарного
факта, что "работодатель" должен повышать квалификацию разработчика за свои буржуйские деньги (если уж он возомнил себя буржуем),
а не требовать нагло: "нам нужен специалист, который умеет всё на свете за бесплатно; он будет работать -
а мы деньги получать".
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 09.01.2010, 01:30


Я как раз очень хорошо себе представляю, откуда берется кошмар и ужас в постсоветском производстве и разработках. И отлично знаю, что получается при следовании "таким вот ГОСТам" (а получается - качественная наукоемкая продукция, идущая на экспорт в дальний зарубеж..... в 62 страны мира, между прочим). А разруха - она начинается не в клозетах, а в головах (с) Ф.Ф.Преображенский - кстати, с удовольствием пересмотрел в эти праздники.....


The difference between theory and practice is that in theory, there is no difference between theory and practice, but in practice, there is.
Ответить с цитированием
  (#7 (permalink)) Старый
deckard deckard вне форума
Member
 
Сообщений: 77
Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 5 сообщениях
Регистрация: 04.03.2008
По умолчанию 09.01.2010, 14:23

Я бы мог привести множество примеров, но постараюсь выбрать 2 русских программы, авторы которых, надеюсь, на меня не обидятся.
1) Пример 1

http://www.rarlab.com/

Но автору, очевидно, слишком тяжело было работать в СНГ, несмотря на такие замечательные ГОСТы.
Между прочим, прграмма изначально называлась "русский архиватор".

2) Пример 2

Дмитрий Гуртяк, автор замечательной (хотя и достаточно скромной по современным "корпоративным" меркам),
программы keyrus. Эта программа стояла на каждом компьютере страны (уж какой именно страны ...)
Но он не стал миллионером, он просто умер, совсем молодым, и ему никто не помог в трудную минуту.
Только не надо говорить:"Это случайность".

Замечание: какое отношение это имеет к математическим аспектам программирования ? Самое прямое,
т к правильно работающая программа и предполагает ее экономическую ценность. Реальная востребованность компьютеров
(может быть не столько компьютеров, сколько возможность создания, обмена и обработки информации ... да! и в том числе игры!)
в обществе и породила компьютерный бум, отсутствие прогресса и востребованности может компьютерный бум и уничтожить
(и тогда не спасут ни математика, ни новые технологии программирования).

Ответить с цитированием
  (#8 (permalink)) Старый
Alexiski Alexiski на форуме
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 09.01.2010, 22:31

Уважаемый, что-то Вас болтает между темами. Вы уж определитесь, о чем разговор - о программировании или о маркетинге.

Цитата:
Замечание: какое отношение это имеет к математическим аспектам программирования ? Самое прямое, т к правильно работающая программа и предполагает ее экономическую ценность.
Долго силился понять. Не удалось.
Ответить с цитированием
  (#9 (permalink)) Старый
innaviktrova innaviktrova вне форума
Новичок
 
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 31.12.2009
По умолчанию 15.01.2010, 12:07

Цитата:
Как-то оно у Вас спорно сформулировано.. Вообще, на эти темы много написано всякого полезного совета, а вот универсального рецепта ("серебряной пули"), увы, не существует.
зато эту пулю можно сделать самомоу
Ответить с цитированием
  (#10 (permalink)) Старый
Alexiski Alexiski на форуме
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 15.01.2010, 12:14

Цитата:
зато эту пулю можно сделать самому
Да, конечно. Ее нужно выковывать всю жизнь, и в конце достигнешь Дао.
Смысл в том, что универсальных советов не бывает. Каждый проект требует в чем-то своего подхода
Ответить с цитированием
  (#11 (permalink)) Старый
hegg hegg вне форума
Member
 
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.02.2010
По умолчанию 05.02.2010, 13:57

Цитата:
а вот универсального рецепта ("серебряной пули"), увы, не существует.
А какой должен быть универсальный способ-то? Голова должна быть прежде всего.
Ответить с цитированием
  (#12 (permalink)) Старый
korvin korvin вне форума
Member
 
Аватар для korvin
 
Сообщений: 337
Сказал(а) спасибо: 1
Поблагодарили 15 раз(а) в 15 сообщениях
Регистрация: 25.01.2010
По умолчанию 11.03.2010, 23:21

Цитата:
- Использовать константы - это очень пригодится во время написания. Если вы пишите и не знаете значение, либо значение должно водиться пользователем, или может измениться в будущем - это константа.
это Вы описали не константы, а переменные.

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


имхо, следует по возможности минимизировать количество побочных эффектов и писать код в более функциональном стиле, что повышает надёжность и упрощает разработку многопоточных приложений.
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
Валерий Лаптев Валерий Лаптев вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.04.2010
По умолчанию 13.04.2010, 17:03

На самом деле принципов только два. Но их постоянно нужно держать в голове.
1. Разделяй и властвуй - это декомпозиция сложной задачи на ряд более простых
2.Принцип Калашникова ака прицип KISS. То есть делай проще, как можно проще и еще раз проще. Это дает правильность и надежность.
Ответить с цитированием
  (#14 (permalink)) Старый
anonymous anonymous вне форума
Member
 
Сообщений: 130
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 31.03.2010
По умолчанию 15.04.2010, 19:59

Цитата:
2.Принцип Калашникова ака прицип KISS. То есть делай проще, как можно проще и еще раз проще. Это дает правильность и надежность.
ака принцип бритвы Оккама
Ответить с цитированием
  (#15 (permalink)) Старый
DarkForce DarkForce вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.03.2011
По умолчанию 18.03.2011, 00:00

Цитата:
Сообщение от Валерий Лаптев Посмотреть сообщение
На самом деле принципов только два. Но их постоянно нужно держать в голове.
1. Разделяй и властвуй - это декомпозиция сложной задачи на ряд более простых
перила
Ну и самое главное, используй правильные алгоритмы. Иначе вообще не будет программы, что самое важное, для новичка...
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Примеры для новичков на C# *HellRaiser* Программирование под Windows 8 13.03.2014 12:04
Нужна помощь по написанию 3 -х лабораторных на TURBO PROLOGe Ardni Prolog 22 16.12.2011 22:28
Прблема для новичков Aleksei+Larisa Любые вопросы от новичков 2 06.10.2011 01:06
Советы по написанию программ с использованием механизма выбора Ahinar OpenGL 3 22.10.2009 15:24
Принципы управления DVD и CD приводами tumanovalex Железо. Написание драйверов 0 29.08.2008 00:21
Принципы форматирования файлов shatush Общетематический 3 29.06.2007 23:16
где можно найти tutorial по написанию чата? imported_Step PHP 0 03.04.2005 19:24
Основные принципы работы программ на платформе Microsoft. Net Daredevil Вопросы начинающих программистов 2 05.01.2005 15:50
Принципы написания трояна Anonymous Delphi 30 19.03.2004 16:37
Требуется решить вопросы по написанию Служб Service Anonymous WinAPI 2 10.02.2004 01:01
Driver for winnt где найти информацию по написанию SH@DOW Delphi 4 24.12.2002 17:23
Советы по написанию доски объявлений Anonymous Perl 1 27.11.2002 00:46



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов