Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

как правильно программировать?

785  1 2 3 4 5 все
  Chipolino старожил20.09.09 16:34
20.09.09 16:34 
в ответ anly 20.09.09 15:34
В ответ на:
чтобы тест выявил ошибку нужно в тесте вызвать эту функцию. а ежели не вызвал? т.е. не написал именно этого теста. что тогда? (может не ты, а тот кто писал этот тест много лет назад)

ну не знаю, может стоит профессию поменять :-)
#41 
Murr коренной житель20.09.09 17:02
Murr
NEW 20.09.09 17:02 
в ответ anly 20.09.09 15:34
а ежели не вызвал?
-----
Почитай, хоть на ознакомительном уровне, документацию к NUnit\JUnit
и посмотри примеры.
что тогда?
-----
Тогда тебя уволят. Ибо сначала делается проектирование, потом пишутся
тесты, и только потом делается и тестируется код...
#42 
Murr коренной житель20.09.09 17:06
Murr
NEW 20.09.09 17:06 
в ответ Murr 20.09.09 17:02
З.Ы. Ответь себе на простой вопрос - Какой код является правильным? - отчень многие
вопросы отпадут.
#43 
pkrasnop знакомое лицо20.09.09 17:07
pkrasnop
NEW 20.09.09 17:07 
в ответ anly 17.09.09 22:44
Преймущество С++ перед Java, Python и иже с ними это скорость. Если скорость не важна, то выбирать нужно тот язык, реализация на котором проще для данной задачи. В противном случае, использование любых конструкций, снижающих скорость выполнения программы, не приветствуется. В частности, виртуальных функции в С++.
#44 
anly постоялец20.09.09 17:37
anly
NEW 20.09.09 17:37 
в ответ Murr 20.09.09 17:02
В ответ на:
Тогда тебя уволят. Ибо сначала делается проектирование, потом пишутся
тесты, и только потом делается и тестируется код...
редко встретишь такое непонимание!
Речь идёт о ситуации когда проектирование, тесты и сам код были написаны задолго до тебя! И написано не лучшим образом.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#45 
katran76 коренной житель20.09.09 17:50
NEW 20.09.09 17:50 
в ответ pkrasnop 20.09.09 17:07
В ответ на:
Преймущество С++ перед Java, Python и иже с ними это скорость.

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

Если скорость важна, то обычно покупают больше железа. А выбирать нужно тот язык который знаешь.
Всё ИМХО
#46 
viger2 постоялец20.09.09 19:06
viger2
NEW 20.09.09 19:06 
в ответ anly 17.09.09 22:44
В ответ на:
Я работаю над проэктом, который писали множество программистов уже лет 15 как, ...

в этом то и проблема, но это скорее это проблема не только самих программеров а скорее всего и самой организации в целом и прежде всего проэкт менеджмента.
среднестатистическому проэктлидеру, который допустим мало разбираетется в программировании, наверняка пофиг как и что там реализовано и насколько рационально, для него важно что продукт работает, т.е. цели и задачи выполнены и прежде всего что все сделано в срок.
Когда требуется новые фичерс для готового продукта, то все исходят из того что готовый продукт уже работает и испробыван временем,
какието изменения в нем самом, пусть даже и необходимые, череваты тем что:
а.) эти измененя могут повлиять на сам исходный продукт.
б) на изменеение и тестерование требудется время и ресурсы, которые незапланированы.
в) соответсвенно их останется меньше для реализации самой новой функции.
Хорошо если руководство понимает что нужно навести порядок в проекте, и выделяет на это время и ресурсы, а если это делать на свой страх и риск то так или иначе, останишся крайним.
все что вы сделаете в интернете может быть использовано против вас!
#47 
pkrasnop знакомое лицо20.09.09 19:11
pkrasnop
NEW 20.09.09 19:11 
в ответ katran76 20.09.09 17:50
В ответ на:
это спорный и далеко не однозначный вопрос

Это однозначный вопрос. Чем "ближе" я к железу, тем больше у меня возможностей для оптимизации.
В ответ на:
Если скорость важна, то обычно покупают больше железа. А выбирать нужно тот язык который знаешь.

С Web разработками такой подход часто имеет место быть. А для решения вычислительно сложных задач требуется не только количественный рост, но и качественный.
#48 
katran76 коренной житель20.09.09 19:24
NEW 20.09.09 19:24 
в ответ pkrasnop 20.09.09 19:11
В ответ на:
Это однозначный вопрос. Чем "ближе" я к железу, тем больше у меня возможностей для оптимизации.

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

Такой подход имеет место быть везде
В ответ на:
А для решения вычислительно сложных задач требуется не только количественный рост, но и качественный.

Т.е. плюсы - это наиболее качественное из имеющихся?
#49 
Murr коренной житель20.09.09 19:24
Murr
NEW 20.09.09 19:24 
в ответ anly 20.09.09 17:37
редко встретишь такое непонимание!
-----
Или наоборот. Понимание. Причем до уровня, когда сначала оценивается то,
с чем придется работать и только по результатам принимается решение по
извечному вопросу - Что делать?
задолго до тебя!
-----
Разумеется.
И написано не лучшим образом.
-----
Вот это уже вопрос к тебе.
Когда брался за работу как оценивал Сколько Работы нужно выполнить?
Насколько имеющийся код соответствует документации?
Как поставлен процесс разработки?
Что вообще от тебя ждут?
Уже сколько раз приходилось отказываться от работы просто потому, что
объем необходимой работы был много больше, чем заявляемый при найме.
#50 
viger2 постоялец20.09.09 19:24
viger2
NEW 20.09.09 19:24 
в ответ Murr 20.09.09 17:02
В ответ на:
...сначала делается проектирование, потом пишутся
тесты, и только потом делается и тестируется код..

да это написано в любой книжке по проэктменеджменту.
Что нужно как можно больше времени и сил отдавать спецификации
и продумать все возможные ситуации для каждого этапа
проекта и прежде всего для тестирования и только потом писать код.
Это все конечно так, вопрос только на сколько это используется на практике?
Опятьже все упирается в организацию процессов на фирме и насколько
"умный" проэктменеджмент и слаженный коллектив...
все что вы сделаете в интернете может быть использовано против вас!
#51 
Murr коренной житель20.09.09 19:28
Murr
NEW 20.09.09 19:28 
в ответ pkrasnop 20.09.09 17:07
это скорость.
------
Скорость это количество процессоров в кластере.
А писать надо на том, на чем будет проще и понятнее.
#52 
pkrasnop знакомое лицо20.09.09 19:47
pkrasnop
20.09.09 19:47 
в ответ katran76 20.09.09 19:24, Последний раз изменено 20.09.09 19:48 (pkrasnop)
В ответ на:
а сколько человек способны реализовать все или хотя бы большинство возможностей оптимизации, т.е. обладают опытом и знаниями для этого?
Сейчас ты это сформулировал как "возможность" и тут ты конечно прав, возможностей больше. Но разработка на языке высокого уровня позволяет достичь результата (и поддерживать готовый продукт) с меньшими затратами ресурсов. Если рассматривать только скорость работы готовой программы то это сферический конь в вакууме.

В чём заключается результат? Что такое "рабочая программа"?
Если вас устраивает расчёт стоимотси опциона за 1день тогда программа делающая это за 12часов - рабочая. Но если у меня есть программа делающая это за 6 часов, то вы понимаете, кто получит прибыль ;-), которая к слову не идёт ни в какое сравнение с расходами.
В ответ на:
Т.е. плюсы - это наиболее качественное из имеющихся?

Качество программы должно расти, а не только количество железа :-) Иначе бы на 8корах был бы занят только 1 :-)
#53 
AlexOtt знакомое лицо20.09.09 19:51
AlexOtt
NEW 20.09.09 19:51 
в ответ katran76 20.09.09 17:50
покупать больше железа получается только если у тебя веб-сервис или т.п. SaaS. а вот если у тебя сотни клиентов, то приходится оптимизовывать софт, чтобы он выжимал все возможное из железок...
#54 
anly постоялец20.09.09 19:53
anly
NEW 20.09.09 19:53 
в ответ Murr 20.09.09 19:24
В ответ на:
Когда брался за работу как оценивал Сколько Работы нужно выполнить?
Насколько имеющийся код соответствует документации?
да я уже давно работаю на этой фирме. Просто раньше я писал свою программу с нуля. Сейчас она уже написана и редко меняется. Теперь я больше поддерживаю другие программы фирмы. А вот документации зачастую вообще нет. Впрочем есть которая описывает разные настройки, внутренние переменные которые включают-отключают фичи. Но документация реализации - такого практически нет. Да она и не нужна если программа написана понятно.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#55 
AlexOtt знакомое лицо20.09.09 19:55
AlexOtt
NEW 20.09.09 19:55 
в ответ pkrasnop 20.09.09 17:07
кстати, OCaml вполне себе доганяет C++ по скорости, при этом получается куча полезных вещей типа статической проверки типов и т.п. на гугл видео есть рассказ 'Caml Trading', ну и у lionet.livejournal.com есть описания производительности окамла как замены С++
#56 
Murr коренной житель20.09.09 20:05
Murr
NEW 20.09.09 20:05 
в ответ pkrasnop 20.09.09 19:11
Чем "ближе" я к железу, тем больше у меня возможностей для оптимизации.
------
Чем ближе ты к железу, тем меньше у тебя возможностей для оптимизации.
Просто потому, что объем низкоуровневого кода "несколько" больше и "за
деревьями леса не видно"... выиграешь в оптимизации трех команд пару нансек
и потеряешь на чем-то глобальном пару милисек...
но и качественный.
-----
Чтобы код был качественным, ты должен видеть и понимать его целиком.
На низком уровне возможность это сделать теряется.
вычислительно сложных задач
-----
Хммм... году этак в... ну да ладно об годах... В распоряжении прогера были
СМ-3, какие-то килобайты памяти, немножко мебагайт диска и транслятор с
Фортрана. Задача была не сложная - что-то из трассировки многослойных
печатных плат... Единственная проблема - размерность задачи. Она явно не
соответствовала возможностям системы - памяти не хватало.
Если кто-то возмется сейчас за день написать подсистему кеширования для
подобной задачи и справится за день - Я его буду уважать... но оценил бы
полную задачку, учитывая то железо и язык, в пару-тройку недель...
Тем не мение мужичек, которому пришлось писать код, справился с задачей
на 5-ть... и всего за день.
#57 
Murr коренной житель20.09.09 20:17
Murr
NEW 20.09.09 20:17 
в ответ viger2 20.09.09 19:24
вопрос только на сколько это используется на практике?
------
Тут всего два варианта.
Первый - это используется - проект живет и если он имеет смысл - развивается.
Второй - это не используется - проект развивается до некоторого уровня и затем помирает.
Третьего варианта нет.
От проектменеджеров конечно зависит "многое", но они ограничены тем что знают и что
документировано...
#58 
pkrasnop знакомое лицо20.09.09 20:19
pkrasnop
NEW 20.09.09 20:19 
в ответ Murr 20.09.09 20:05
В ответ на:
объем низкоуровневого кода "несколько" больше и "за
деревьями леса не видно"... выиграешь в оптимизации трех команд пару нансек
и потеряешь на чем-то глобальном пару милисек...

Согласен. Поэтому не ассемблер или машинный код ;-)
В ответ на:
Чтобы код был качественным, ты должен видеть и понимать его целиком.
На низком уровне возможность это сделать теряется.

Здесь я имею ввиду качественный по скорости, а не по поддержке. Ещё раз, если нужна скорость, то иногда приходится немного жертвовать дизайном. Если скорость не нужна - то и с++ часто не нужен.
#59 
pkrasnop знакомое лицо20.09.09 20:28
pkrasnop
NEW 20.09.09 20:28 
в ответ AlexOtt 20.09.09 19:55
В ответ на:
кстати, OCaml вполне себе доганяет C++ по скорости, при этом получается куча полезных вещей типа статической проверки типов и т.п. на гугл видео есть рассказ 'Caml Trading', ну и у lionet.livejournal.com есть описания производительности окамла как замены С++

В С++ есть возможности для мета-программирования. То, что какой-то компилятор для OCalm может сделать быстрый код, который работает быстрее кода, сгенерированного каким-то компилятором для с++ я согласен.
#60 
1 2 3 4 5 все