powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Страшные слова
25 сообщений из 107, страница 1 из 5
Страшные слова
    #35803328
MikeKS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите пожалуйста, что такое Design Patterns (шаблоны проектирования), где их берут, с чем их едят и вообще кто их использует и зачем? А то мне тут говорят, что это вроде как самое элементарное и каждый должен это знать и если не знаешь, то вроде ты и не программер уже. А я вроде как-то 5 лет программлю на Delphi, сейчас на C#, и потом еще PHP, JavaScript, а про Design Patterns не в зуб ногой.

И еще мне тут наговорили страшных слов из 3 букв: DDD, TDD, UML. И главное, что мне хотелось бы узнать насчет этих слов - насколько это все сложно изучить быстро и вообще сколько времени на это нужно? Куда сходить по этому поводу, что почитать?. И второе - кому это нужно и насколько распространено?

Спасибо.
...
Рейтинг: 0 / 0
Страшные слова
    #35803340
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гугл
вики
неужто забанили и там и там?
...
Рейтинг: 0 / 0
Страшные слова
    #35803879
Coolibin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeKSИ второе - кому это нужно и насколько распространено?
Нужно это самим разработчикам, больше никому. Однако, если Вам незнание этого никак не мешает зарабатывать деньги программизмом, то и не забивайте голову. Это, знаете, сродни открытию того, что макароны, оказывается, удобнее есть ложкой. Однако, если вы и вилкой до этого справлялись неплохо, то ради чего заморачиваться-то?
...
Рейтинг: 0 / 0
Страшные слова
    #35803921
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeKSИ второе - кому это нужно и насколько распространено?Тут один человек красиво сказал:
Дедушко_Но_молодойпетушинное потрясание красивым программистским гребнем ввиде тяги к технологическим изыскам вместо функциональности и сопровождаемости.

Есть специалисты, которые решают проблемы бизнеса, а есть такие, которые не решают, и со знанием Design Patterns и UML это слабо коррелирует. Хотя в принципе знание Design Patterns, так же как и остального, не повредит. И вообще образование - это хорошо.
...
Рейтинг: 0 / 0
Страшные слова
    #35803952
MikeKS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые господа! Нигде меня не забанили, напротив, я сейчас активно ищу информацию по этим позициям. Как я понял из разговора с одной из западных компаний, они считают знание TDD, UML и Design Patterns как само собой разумеющееся, точнее они считают, что это основы, без которых и программистом Вас считать никто не будет. Так вот я и пытаюсь теперь понять, в действительности ли это так а) за бугром и б) у нас. И сколько у нас компаний (в %), которые ведут разработки подобным образом?

Я, вообще, правильно понимаю, что это все инструменты, которые в основном используются на больших проектах, где нужно организовать работу многих программистов? Или еще многие пишут, что это позволяет сократить время на разработку, повысить ее качество и читабельность кода за счет унификации и т.п. Это действительно так? Кто-нибудь из присутствующих это на себе ощутил?

Спасибо.
...
Рейтинг: 0 / 0
Страшные слова
    #35803955
MikeKS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И что такое DDD?
Что почитать на тему UML, DDD, TDD, Design Patterns!? Чтобы научиться работать с этим барахлом!!!
...
Рейтинг: 0 / 0
Страшные слова
    #35804071
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeKSИ что такое DDD? Я только про отладчик знаю.
MikeKSЧто почитать на тему ... Design Patterns!?Понять, что такое Design Patterns - Шаблоны проектирования , далее уже читать литературу и специальные сайты.
...
Рейтинг: 0 / 0
Страшные слова
    #35804117
erofeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeKS,

паттерн это стандартный подход к реализации типовой задачи
грубо говоря если знать достаточно паттернов и уметь сводить свои задачи к типовым - время на проектирование сокращается

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

в одной статье про паттерны видел замечательные ступени в их изучении:
1. сначала вы используете их неосознанно
....
N. в конце концов вы снова используете их неосознанно

Что касается юмл - он просто нагляден для создания объектной модели (кстати модель суть часть паттерна, который так или иначе осознанно или неосознанно используют все)
...
Рейтинг: 0 / 0
Страшные слова
    #35804124
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeKS,
DDD
...
Рейтинг: 0 / 0
Страшные слова
    #35804141
gp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И шаблоны, и UML нужны не для разработки как таковой, а для общения в комманде, в том числе - с клиентами и подрядчиками.

Это то же самое, что знание языков.

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

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

Что касается UML, его нужно знать как дорожные знаки, потому как есть некие соглашения, и вы будете тупо выглядеть, если нарисуете схему похожую на UML, но обозначать она будет нечто совсем другое, одному вам понятное.
...
Рейтинг: 0 / 0
Страшные слова
    #35804165
gp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CoolibinЭто, знаете, сродни открытию того, что макароны, оказывается, удобнее есть ложкой. Однако, если вы и вилкой до этого справлялись неплохо, то ради чего заморачиваться-то?

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

на эту тему
...
Рейтинг: 0 / 0
Страшные слова
    #35804182
trdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeKSСкажите пожалуйста, что такое Design Patterns (шаблоны проектирования), где их берут, с чем их едят и вообще кто их использует и зачем?


Патерны полезны, когда работаешь с языками низкого уровня, например С или С++.
Если трудишся "под фраймверком" или со скриптовыми языками, то заморачиваться не приходится.
В "фраймверках" и многие технологические решения уже приняты, что освобождает от множества проблем.

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

MikeKSА я вроде как-то 5 лет программлю на Delphi, сейчас на C#, и потом еще PHP, JavaScript

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

Меня например это знание хорошо выручает, т.к. работаю не только с 1С, но и с с++.
Хотя стал замечать, что некоторые элементы применяю и в 1С. Наверно просто стал "узнавать" патерны в коде.

вкусите множество сексуальных наслаждений с нашей новой платформой... (с) 1С
...
Рейтинг: 0 / 0
Страшные слова
    #35804314
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeKS пишет:

> Я, вообще, правильно понимаю, что это все инструменты, которые в
> основном используются на больших проектах, где нужно организовать работу
> многих программистов?

Не совсем, только TDD, UML могут этому понять.

Design Patterns - скорее элемент общей грамотности программиста,
хотя конечно, знание их поможет понимать других.

Или еще многие пишут, что это позволяет сократить
> время на разработку,

Не всегда.

повысить ее качество и

наверное, да.

читабельность кода за счет
> унификации и т.п. Это действительно так?

Ну, и да, и нет. Это- инструменты, если уметь
ими пользоваться,то будет эффект. Если не уметь,
эффекта не будет. Даже, на счёт времени разработки,
может появиться отрицательный эффект, поскольку
и TDD, и UML -- это всегда некая накладуха, на
которую нужно тратить время.

Кто-нибудь из присутствующих
> это на себе ощутил?

Ощутил.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Страшные слова
    #35804316
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gp пишет:
> И шаблоны, и UML нужны не для разработки как таковой, а для общения в
> комманде, в том числе - с клиентами и подрядчиками.

На кой хрен заказчику видеть твои классы ?
Ему знаешь ли до этого по барабану.
Если речь идёт о диаграммах типа Use Case, то
именно к разработке на мой взгляд они мало отношения имеют.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Страшные слова
    #35804319
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm пишет:

> Патерны полезны, когда работаешь с языками низкого уровня, например С
> или С++.
> Если трудишся "под фраймверком" или со скриптовыми языками, то
> заморачиваться не приходится.
> В "фраймверках" и многие технологические решения уже приняты, что
> освобождает от множества проблем.

Как раз при работе под фреймворками патерны полезны как никогда.
Потому что во фреймворках часто эти паттерны и реализованы.
Если ты их знаеш, то уже знаеш априори пол фреймворка.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Страшные слова
    #35804451
gp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так 'Вера Ивановна открыла для себя ТайДД'.

Я начал реализовывать некий численный метод.

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

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

Я незадолго прочел кой-что о TDD, и хотел применить на практике.

Начал с того, что вынес метод и поля, которые методом использовались из хрен-знает-какого класса в собственный класс, отвечающий именно за данный численный метод.

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

Создал по одному тесту для известных свойств функции из мат. справочника.
Сразу оказалось, что не все свойства напрямую представимы в виде тестов типа: f(X) = Y
Более ценными оказались несколько теорем и их следствий, который рассматривались в том же мат. справочнике, и которые как раз выдавали эти самые связки f(X) = Y.
Всего их было около 12-и.

Естественно, я так же создал по одному тестовому методу для каждого известного проблемного случая. Каждый из этих методов имел вид типа:
Assert.AreEqual(y, f(x));

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

Я тут же получил почти все красные лампочки, даже для тех наборов параметров, с которыми я тестировал при разработке раньше.
Последнее меня удивило, ведь так точно работало в тот раз !

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

...

Не могу вам передать, сколько раз я видел, что горят 3 из 20 лампочек, 18 из 20, 1 из 20 в разных комбинаторных сочетаниях, пока я переделывал код всего-навсего одного метода, чтобы добиться правильной его работы. Теперь представьте, сколько у меня было шансов решить, что наконец-то все заработало, и можно дальше не париться, тогда как метод работал только для некоторых параметров, но не для других.

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

Оказалось, что в обеих подпрограммах основной программы были свои ошибки, но "погасить красные лампочки" в этом случае оказалось гораздо проще.

Добившись, что все лампочки в конце-концов зажглись зеленым, я понял, что только теперь у меня есть гарантия что хоть это хоть как-то работает.

Обозрев чудовищную простыню тестовых методов, я понял, что она уже гораздо длиннее тестируемого кода. И это было великолепно, потому что именно этот код имел ценность, а не код метода, который можно переписывать по 100 раз на дню, и все мало будет. По крайней мере я потратил время на то, чтобы создать гарантию правильного решения задачи, который и после моей смерти будет стандартным способом описывать правильное решение. Но в то время я еще не понимал этого, и считал, что я сделал нечто ламерское, неправильное и ненужное.

Моей смерти ждать не пришлось, ибо стало ясно, что хотя метод работает теперь блестяще правильно, он все еще далеко не оптимален по времени и по памяти. И вот тут я понял, что усилия были в правильную сторону. Началось самое test-driven, до этого это была просто попытка привести к этой парадигме.

Теперь у меня была свобода воротить в коде метода все, что хочется, я точно знал, что ничего не сломаю, потому что "волшебные пузырьки" тут же все покажут красным светом.
От алгоритма и камня на камне не осталось: я все переписал заново, убрав рекурсию, и много кой чего еще. Два служебных метода тоже были полностью переписаны. Я еще никогда так легко и уверенно не переписывал ничего. Тут до меня стало доходить, в чем сила TDD. Сам код не так уж и ценен. Гораздо ценнее усилия по проверке, что этот алгорити работает. И эти усилия аккумулируются в необходимом и достаточном колличестве в виде отдельных тестовых методов, и поэтому больше не будет никакого: "главное ничего здесь не трогать, слава богу - работает", потому что код, покрытый тестами, легко поставить с ног на голову и обратно, если понадобится, и быть уверенным, что ничего не сломается.
...
Рейтинг: 0 / 0
Страшные слова
    #35804750
trdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
trdm пишет:
> Патерны полезны, когда работаешь с языками низкого уровня, например С
> или С++.
> Если трудишся "под фраймверком" или со скриптовыми языками, то
> заморачиваться не приходится.
> В "фраймверках" и многие технологические решения уже приняты, что
> освобождает от множества проблем.
Как раз при работе под фреймворками патерны полезны как никогда.
Потому что во фреймворках часто эти паттерны и реализованы.
Если ты их знаеш, то уже знаеш априори пол фреймворка.

малость уточню. я 10 лет занимаюсь 1С-ом и не разу у меня не встал вопрос "как организовать код"
Потому что выбор не приходилось делать: инструменты ограничены.
Вот когда связался с проектом на С++ сразу почувствовал что чего-то мне не хватает, полез разбираться: http://www.forum.crossplatform.ru/lofiversion/index.php?t379.html
Вот тут на них напал и понял, что самое оно....
отседа и выводы, так сказать по своему опыту...
...
Рейтинг: 0 / 0
Страшные слова
    #35804778
VxS_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm

Патерны полезны, когда работаешь с языками низкого уровня, например С или С++.

Здраааавствуйте!.. Когда это С и С++ стали языками низкого уровня? Я что опять в своей жизни что-то проспал?
...
Рейтинг: 0 / 0
Страшные слова
    #35805214
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm wrote:

> малость уточню. я 10 лет занимаюсь 1С-ом и не разу у меня не встал
> вопрос "как организовать код"

Потому что это - 4GL, там все эти паттерны на фиг не нужны,
там для всего этого должны быть языковые средства.
Эти все особенности давно известны (в смысле об этом много сказано и написано), т.е.

-- что применение Design Patterns очень зависит от языка программирования.

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

Например, хорошо известно, что всяческие фабрики в языках с метаклассами
типа SmallTalk-а не нужны вообще. Или не нужен паттерн Visitor в языках,
поддерживающих мультиметоды (множественную диспетчеризацию).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Страшные слова
    #35805223
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VxS_ wrote:

> Здраааавствуйте!.. Когда это С и С++ стали языками низкого уровня? Я что
> опять в своей жизни что-то проспал?

Ну как, они конечно формально языки высокого уровня, но есть языки
и более крупные. Есть просто т.н. 4GL, есть и в рамках языков
высокого уровня более "крупные" языки.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Страшные слова
    #35806174
gp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VxS_trdm

Патерны полезны, когда работаешь с языками низкого уровня, например С или С++.

Здраааавствуйте!.. Когда это С и С++ стали языками низкого уровня? Я что опять в своей жизни что-то проспал?

По всей видимости - проспали, потому как С и С++ действительно являются языками низкого уровня. Точнее они охватывают диапазон уровней, в том числе и низкий, чем в значительной мере и обусловлена их популярность.
...
Рейтинг: 0 / 0
Страшные слова
    #35807025
VxS_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpVxS_trdm

Патерны полезны, когда работаешь с языками низкого уровня, например С или С++.

Здраааавствуйте!.. Когда это С и С++ стали языками низкого уровня? Я что опять в своей жизни что-то проспал?

По всей видимости - проспали, потому как С и С++ действительно являются языками низкого уровня. Точнее они охватывают диапазон уровней, в том числе и низкий, чем в значительной мере и обусловлена их популярность.
Что в вашем понимании "охватывают несколько уровней"? И что вы понимаете под "низкоуровневым языком"? В моем понимании - низкоуровневый язык - это язык, в котором мы напрямую работаем с машинными командами. Если вы считаете, что assembly-вставки делают С++ низкоуровневым, то тогда делфи с его asm ... end; вы тоже считаете низкоуровневым, а точнее "охватывающим несколько уровней"? На мой взгляд, какая-то отсебятина.
...
Рейтинг: 0 / 0
Страшные слова
    #35807031
VxS_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Ну как, они конечно формально языки высокого уровня, но есть языки
и более крупные. Есть просто т.н. 4GL, есть и в рамках языков
высокого уровня более "крупные" языки.

+1
...
Рейтинг: 0 / 0
Страшные слова
    #35807075
gp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VxS_,

Низкоуровневым С и C++ делает работа с памятью.
Посредством работы с памятью в C и С++ есть возможность писать системно-зависимый код, не прибегая к нестандартным расширениям языка.
...
Рейтинг: 0 / 0
Страшные слова
    #35807122
VxS_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gpVxS_,

Низкоуровневым С и C++ делает работа с памятью.
Посредством работы с памятью в C и С++ есть возможность писать системно-зависимый код, не прибегая к нестандартным расширениям языка.
Вот оно что... У нас с вами совершенно разное понимание "что есть низкоуровневый язык".
...
Рейтинг: 0 / 0
25 сообщений из 107, страница 1 из 5
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Страшные слова
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]