Обсуждение:Золотой молоток (KQvr';yuny&{klkmkw bklkmkt)
Проект «Информационные технологии» (уровень II, важность для проекта низкая)
Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями. |
Разделы статьи
[править код]Интересно увидеть в статье следующее:
- как этот шаблон используется в разных направлениях IT (языки программирования, базы данных и т.д.), вероятно есть материал по базам данных, т.к. есть такие книги: Программирование баз данных SQL. Типичные ошибки и их устранение;
- история термина;
Сделано.
- с какими концепциями антипаттернов взаимосвязано и чем отличается (см. концепции в статье англовики + интересно - взаимосвязь и разница с "Silver Bullet");
Сделано.
- найдите и поставьте ссылки на словари - как правильно писать "антипаттерн" или "анти-паттерн";
- Посмотрел словарях, нигде нет однозначного написания. Например на dic.academic.ru и так и так пишется.
- dic.academic.ru - это мета-словарь, т.е. оболочка над другими конкретными словарями. В данном случае по анти?паттерну данные взяты из Википедии, которая не может являться для нас авторитетом, т.к. мы сами её пишем.
- Можно решить вопрос так - взять более-менее серьёзные книги по паттернам и посмотреть написание. Возьмём "Аллен Э. Типичные ошибки проектирования". Стр. 22 "антипаттерны" - слитное написание, без дефиса. Стр. 63 "анти-паттер". Переводчик, может и не ..., но точно с плохой памятью, такая книга нам не поможет :)
- Берём следующую книгу: "Head First Design Patterns / Паттерны проектирования", 2011 год, Издательство: Питер, есть на рутрекере. В этой книге чётко и единообразно (по всей книге) написано "антипаттерн" - слитно. Если найдёте другие авторитетные источники с написание через дефис - можно будет продолжить обсуждение. -- Andrew Krizhanovsky 18:00, 14 января 2013 (UTC)
- Посмотрел словарях, нигде нет однозначного написания. Например на dic.academic.ru и так и так пишется.
- укажите место паттерна среди других, используйте для этого информацию из документа с чудесными иллюстрациями [1];
- Существует очень много классификаций, однозначно определить не представляется возможным.
- как избежать данной проблемы, конкретные рекомендации (это, как я понимаю, соль и ключ статьи);
Сделано.
- примеры конкретных случаев данного паттерна на практике, см. пример на стр. 123 в работе Design Patterns Past and Future для других паттернов.
Сделано.
-- Andrew Krizhanovsky 17:43, 11 декабря 2012 (UTC)
Дополнения:
- После того, как во введении к статье дадите определение "Золотой молоток - это...", дайте определение "Антипаттерны - это...". См. как это сделано у Алёны "Определение плагиата".
Сделано. Определение Золотого молотка и анти-паттерна есть.
- На Rutracker'e есть книга "Типичные ошибки проектирования". Укажите в своей статье, что существует понятие "паттерн ошибки" и чем он отличается от антипаттернов, возьмите его из книги (стр. 21-22 и 65-66, 216), можно оттуда же взять и определение для антипаттернов (стр. 213, 216). -- Andrew Krizhanovsky 14:44, 13 декабря 2012 (UTC)
Сделано. Добавил.
Довесок
[править код]Оборачивать шаблон в шаблон вот так: "{{lang-en| {{нп3|" - не нужно. Шаблон "lang-en" здесь лишний. И вообще, зачем здесь ссылка на английскую версию статьи, ведь вы уже указали её с помощью интервики.
Сделано. Оставил только англ.
В преамбуле сейчаc нет определения, типа "Золотой молоток - это..." со ссылкой на ВП:АИ
Сделано.
Вы трижды ссылаетесь на книгу Аллена в 224 страницы. Укажите конкретные номера страниц для удобства проверки. См., как это сделал Мошанин или перечитайте, как пользоваться шаблоном {{sfn}}.
Сделано. Правильно??
Волков Андрей 18:30, 8 января 2013 (UTC)
Общее замечание. Если вы выполнили какое-либо из пожеланий, представленных на этой странице, то напишите после конкретного замечания "Сделано" и уточните - что сделано. Если вы не согласны, то здесь же после конкретного замечания - разъясните свою точку зрения. См., как это сделано здесь: Википедия:Кандидаты в избранные статьи/Северный Ледовитый океан. -- Andrew Krizhanovsky 08:48, 7 января 2013 (UTC)
Небольшое замечание
[править код]isbn найди, как параметр шаблона для книг и, возможно, статей =Р Andronov Ruslan 15:44, 9 января 2013 (UTC)
к чему нашел записал! Волков Андрей 16:40, 9 января 2013 (UTC)
Дополнение
[править код]У англичан в разделе "См. также" ссылка на статью "Панацея". Предлагаю викифицированно вплести в ткань текста или же добавить в "См. также" - по желанию. -- Andrew Krizhanovsky 22:57, 9 января 2013 (UTC)
Сделано.
Волков Андрей 23:34, 9 января 2013 (UTC)
Доп. инфа по золотому молотку
[править код]Книга "Head First Design Patterns / Паттерны проектирования", 2011 год, Издательство: Питер, (есть на рутрекере), стр. 623. Добавьте оттуда в статью (со ссылкой на страницу в книге):
- факторы, которые объясняют, почему вообще возникает такая проблема у разработчиков, как "ЗМ". ::
Сделано.
- способ преодоления данной проблемы ::
Сделано.
- в раздел "Пример" добавьте пример о кэшировании (оттуда же). -- Andrew Krizhanovsky 18:00, 14 января 2013 (UTC) ::
Сделано.
Отлично. Следующие доработки:
- Укажите номер страницы при ссылке на Фримена.
Сделано
- Почему Издательство Питер - заглавными буквами?
Сделано
- Разделы "Факторы..." и "Пример" слишком куцые, слейте их с разделом "Суть..."
Сделано
- Раздел "Способы борьбы с золотым молотком" устраивает, но откуда материал? Добавьте источник.
- Что не ясно по анимации? Если считаете, что текущая анимация идеальна, то объясните, пожалуйста, как подпись рисунка "Как бороться с анти-паттерном Золотой Молоток" соответствует тому, что изображено? Разве трудно поменять текст в анимации, как я предлагаю ниже, чтобы анимация приобрела смысл?
- 12 и 13 задания за вами. См. User:AKA MBG/task. -- Andrew Krizhanovsky 20:34, 29 января 2013 (UTC)
Пример
[править код]Переименуйте название этого раздела во что-то более осмысленное и не такое краткое. Отвратительно много опечаток и бессвязного текста в этом разделе. Попробуйте прочитать вслух этот ужас. -- Andrew Krizhanovsky 18:00, 14 января 2013 (UTC)
Сделано. заменил пример
Иллюстрация
[править код]![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/GoldenHammer-ru.gif/110px-GoldenHammer-ru.gif)
Посмотрел на иллюстрацию и подумал - о чём же эта анимация?
Итак, иллюстрация у нас изображает суть этого антишаблона - золотого молотка. Т.е. мы используем молоток в тех случаях, когда, в действительности, должны использоваться другие шаблоны - паттерны - такова идея.
Поэтому вместо четырёх фраз, которые сейчас рисуются в анимации, должны быть названия каких-либо паттернов (любых) с этой страницы en:Software design pattern (в четырёх таблицах). А раз (так удачно) типов паттернов получается тоже четыре, то я предлагаю эти названия шаблонов и взять:
- en:Creational pattern - Порождающий шаблон
- en:Structural pattern - Структурный шаблон
- en:Behavioral pattern - Поведенческий шаблон
- en:Concurrency pattern - (перевода на русский нет, нужно придумать).
Иллюстрации (иконки) под кажый из этих шаблонов - не знаю, или те же оставить, что есть - или более подходящие подобрать.
С идеей согласны? -- Andrew Krizhanovsky 15:09, 10 января 2013 (UTC)
- Поменял подпись к анимации, она соответствует разделу в которой она находиться и наглядно показывает "чего боится золотой молоток", т.е. на пример: если после/до применения какой то одной и той же технологии для разных задач(гвоздей на анимации), проделать необходимые операции -> можно выявить Золотой молоток и исправить ситуацию(сломать Золотой молоток).
- Это мое понимание данной анимации, я считаю что она вполне полная. Вы согласны? -- Volkovad
- Не понимаю, (1) каким образом "Прототипирование" позволяет бороться с "Золотым молотком", (2) как можно идентифицировать молоток с помощью "просмотра кода", (3) как можно устранить "молоток" с помощью "Рефакторинга"?
- Вы ведь сами объяснили суть молотка в определении - "заключается в использовании одного и тогоже решения везде". Т.е. проблема не в коде, а в голове кодера, и просматривай код - не просматривай, голова кодера от этого не изменится. И причём здесь "рефакторинг", разве изменение программного кода поменяет отношение разработика к решению задач? Это ведь совершенно разные вещи, разные уровни проблемы.
- Я потому и спросил выше - откуда взят материал для раздела "Способы борьбы с золотым молотком" - ибо текст очень сомнительный и мутный.
- Не спорьте, перерисуйте лучше. -- Andrew Krizhanovsky 22:24, 29 января 2013 (UTC)
http://www.luxoft-training.ru/upload/iblock/f36/antitemplates_of_programming_a_seminar.pdf (15 слайд).
Мы не из головы "кодера" "Золотой молоток" изгоняем, а из проекта/программы/задачи.
По этому при просмотре кода, можно увидеть что все локальные(глобальные) задачи/проблемы решаются одним и тем же методом И задуматься а везде ли он подходит и изменить подход. А если уже проект/задача решена, тогда рефакторинг.
Я не пытаюсь спорить, это попытки объяснить. То что Вы предлагаете наверное тоже правильно, но я пока не разубедился в том что моя анимация имеет права на жизнь. Волков Андрей 22:57, 29 января 2013 (UTC)
- Очень хорошие попытки.
- Презентация не является аналогом научной статьи, т.к. (1) не проходит рецензирования, (2) является конспектом, т.е. непонятна без доп. разъяснений. Если желаете, можете оформить и добавить ссылку на презентацию.
- Если вы готовы быть толмачом конспекта презентации и чуть более связно (чем выше) изложить ваше понимание способов борьбы в разделе "Способы борьбы с золотым молотком", то изложите. То, что у вас написано в этом разделе сейчас - бессвязный конспект в телеграфном стиле, понятный только автору той презентации:
Способом идентификации — просмотр кода (англ. Code review). Способы устранения — Рефакторинг.
Не слишком ли кратко и невразумительно? -- Andrew Krizhanovsky 08:16, 30 января 2013 (UTC)
- Вижу, вы добавили две ссылки на, в самом деле, замечательные книги по этой теме (Brown и Laplante). Это очень хорошо. Но...
- Но так в Википедии не делается. Ссылки добавляются не в конце раздела (это неуважение к читателю, пусть, мол, сам всё прочитает и догадается - какое утверждение откуда взято), а после каждого нетривиального утверждения.
- В разделе "Способы борьбы с золотым молотком" вы написали четыре предложения. Поставьте ссылки на источники после (в идеале - каждого) предложения, которое эти источники подтверждают. Т.е. ваша задача - подумать и передвинуть шаблоны sfn в правильное место.
- Если таких утверждений в вашем тексте нет, то нужно вдумчиво перечитать источники и написать другой текст. -- Andrew Krizhanovsky 14:03, 30 января 2013 (UTC)
- Передвинул шаблоны sfn и подправил указанные в них страницы. Так же дописал пример, о конкретной области, для наглядности в один из пунктов. Жду комментариев... Волков Андрей 14:49, 30 января 2013 (UTC)
Способом идентификации — просмотр кода (англ. Code review), мониторинг кода в ходе выполнения поставленной задачи и выявление не оптимальных, либо часто повторяющихся решений, анализ и сравнение их альтернатив. (Laplante P. A., 2005, с. 73)
- У Лапланта на 73 странице не вижу ни строчки про "просмотр кода". В каком абзаце или строке на 73 странице? -- Andrew Krizhanovsky 15:05, 30 января 2013 (UTC)
- Ну да, речь все же идет немного о разных уровнях, у меня - уровень разработчиков, в книге все же про менеджмент. У меня - выявление молотка в коде, в книге - выявление молотка на уровне управления. Немного переформулирую фразу и отпишусь. Волков Андрей 15:21, 30 января 2013 (UTC)
- Описал оба уровня (Управленческий/Разработчиков), передвинул шаблон sfn к уровню менеджмента. Волков Андрей 15:37, 30 января 2013 (UTC)
- Сначала у вас в статье "Программист", затем "разработчики программного обеспечения", наконец - "менеджер". И пояснение про разные уровни есть только на странице обсуждения. Считаю, что эта информация должна быть в статье. Например, в разделе "Суть...". Или кратко - в преамбуле. Со ссылками на книги для менеджеров и книги для кодеров. -- Andrew Krizhanovsky 16:15, 30 января 2013 (UTC)
- Текст появился. Ссылок нет. -- Andrew Krizhanovsky 16:49, 30 января 2013 (UTC)
- Добавил ссылки на книги: 1) В первой речь идет о золотом молотке в менеджменте; 2) Во второй по описываются обе стороны. Книги только по программированию есть, но они по конкретным языкам (есть книга про анти-паттерны в JAVA)... и я не смог найти в ней пример золотого молотка. -- Волков Андрей 17:32, 30 января 2013 (UTC)
- Текст появился. Ссылок нет. -- Andrew Krizhanovsky 16:49, 30 января 2013 (UTC)
- Сначала у вас в статье "Программист", затем "разработчики программного обеспечения", наконец - "менеджер". И пояснение про разные уровни есть только на странице обсуждения. Считаю, что эта информация должна быть в статье. Например, в разделе "Суть...". Или кратко - в преамбуле. Со ссылками на книги для менеджеров и книги для кодеров. -- Andrew Krizhanovsky 16:15, 30 января 2013 (UTC)
Анимацию на английском добавьте с соответствующей подписью в статью англовики. -- Andrew Krizhanovsky 16:15, 30 января 2013 (UTC)
- Я не буду трогать английскую статью, до получения зачета у меня нет на нее свободного времени. -- Волков Андрей 16:19, 30 января 2013 (UTC)
- Можете перечитать список заданий - это обязательное. -- Andrew Krizhanovsky 16:49, 30 января 2013 (UTC)
- Извините, не заметил последнего пункта задания с иллюстрацией. В английской версии моей стати почти нет никакой информации. Там даже близко нет раздела "Способы борьбы с золотым молотком". Значит ли это, что я должен дописывать новые разделы в английскую статью? или просто должен добавить туда анимацию с подписью? -- Волков Андрей 17:04, 30 января 2013 (UTC)
- Можете перечитать список заданий - это обязательное. -- Andrew Krizhanovsky 16:49, 30 января 2013 (UTC)
- Если есть время и желание, то можете добавить туда раздел под анимацию. Нет - тогда только анимацию с развёрнутой подписью, чтобы было понятно - что на ней изображено. См. подпись анимации у Мошанина en:Collaborative filtering. -- Andrew Krizhanovsky 17:32, 30 января 2013 (UTC)
Рецензирование
[править код]Рецензирование статьи Золотой молоток
[править код]Дорогие коллеги, прошу вас дать советы и высказать предложения по улучшению статьи.
- Для начала её надо написать, чтобы улучшать. Сейчас там стаб, а не статья. Его полностью переписывать надо, а не улучшать. Филатов Алексей 06:05, 30 января 2013 (UTC)
- Неправильно используется шаблон {{sfn}}. Номера страниц, на которые вы ссылаетесь (622-623), нужно указывать не в шаблоне "книга", а именно в {{sfn}}. -- Andrew Krizhanovsky 08:07, 30 января 2013 (UTC)
Сделано исправил Волков Андрей 08:21, 30 января 2013 (UTC)
Книга Брауна
[править код]Признателен за книгу Брауна - очень интересная. В статью следует добавить следующий материал из Брауна:
- Известные исключения, когда к всеобщему удивлению антипаттерн ЗМ всё-таки работает. Их два. Стр. 62.
- уже же есть этот раздел, и как раз они там приведены =( -- Волков Андрей 18:21, 30 января 2013 (UTC)
- А почему там ссылки нет на источник? -- Andrew Krizhanovsky 19:36, 30 января 2013 (UTC)
- уже же есть этот раздел, и как раз они там приведены =( -- Волков Андрей 18:21, 30 января 2013 (UTC)
- У вас есть список "Факторы способствующие появлению золотого молотка" из четырёх пунктов. Расширьте его материалом из раздела "Typical Causes", стр. 62 со ссылкой на эту страницу.
Сделано расширил -- Волков Андрей 18:52, 16 июня 2014 (UTC)
- У вас не указаны симптомы этой проблемы. Добавьте "Symptoms And Consequences" со ссылкой на стр. 62. -- Andrew Krizhanovsky 16:51, 30 января 2013 (UTC)
Сделано указал -- Волков Андрей 18:52, 16 июня 2014 (UTC)
Связь с другими паттернами и антипаттернами
[править код]- Процитируйте, что есть взаимосвязь с антипаттерном Corncob (трудные люди), Браун, стр. 126-130. Кратко опишите антипаттерн Corncob, т.е. его нет в enwiki.
- Опишите, как в результате ЗМ получается en:Lava flow (programming), стр. 64.
- Опишите, как взаимосвязаны ЗМ и Vendor lock-in, стр. 64, тоже спасибо Брауну.
Думаю, уже назрела необходимость сделать раздел статьи "Связь с другими паттернами и антипаттернами" и слить туда "пулю", Corncob, лаву и вендора. Если текста по каждому будет больше пары абзацев, то сделайте подразделы, если меньше - то один раздел. -- Andrew Krizhanovsky 16:51, 30 января 2013 (UTC)
Сделано создал соответствующий раздел -- Волков Андрей 18:52, 16 июня 2014 (UTC)
С точки зрения программиста-электрика
[править код]- Не определён контекст. Вначале говориться о проектировании. Правильно ли мы, отставные электрики, понимаем, что речь о проектировании вообще, от киосков союзпечати до олимпийских объектов? Затем появляется ссылка на статью Шаблон проектирования, которая относится к узким контекстам проектирования ПО. Правильно ли заключение о том, что понятие «золотого молотка» уместно только в контексте «шаблона программирования», а в остальных контекстах программирования — нет? Возможно ли применять понятие «анти-паттерна», скажем, к программированию поточной цифровой обработки видеосигнала или прошивки, ну например, бытового оксиметра или встроенного контроллера заряда-разряда аккумулятора?
- Не проведена грань — когда же именно следование хорошему решению становится «золотым молотком». А это самое главное, иначе весь разговор о паттернах-антипаттернах теряет смысл. Здесь крайне необходимы конкретные примеры. «Вот — задача. Вот — подход к её решению, уместные для этой задачи. Вот — другая задача, в которой тот же подход даёт такие-то и такие-то негативные последствия (по таким-то причинам). А вот —
полужуравль и полукотальтернативный подход, лишённый этих недостатков.» - Два те самые исключения определены совершенно невнятно и (в нынешней формулировке) наполнены противоречиями (на самом деле их нет - проблема с изложением). «Если продукт является частью пакета поставщика, для большинства потребностей программного обеспечения.» — такого эзопова языка быть не должно!
- «анти-паттерн „Golden Hammer“ говорит о том, что применение одного и того же „любимого“ решения не уместно и приводит к отрицательным последствиям» — то есть анти-паттерн это хорошо, раз он
почти как К. О.говорит такие мудрые слова? С третьего раза понятно, что вы хотели сказать. Надо, чтобы было понятно с первого. А затем следует доказать утверждение, которое противоречит здравому смыслу. Просто сноски на теоретические работы мало. Объясните, почему сегодня вдруг стало нельзя применять решения, которые работали вчера и позавчера. - Про работы Марка Твена в области шаблонов проектирования можно было бы и подробнее ;). Retired electrician (talk) 00:00, 4 февраля 2013 (UTC)
История термина
[править код]В разделе "История термина" говорится только про английские термины. Этого недостаточно для статьи на русском языке. Странно, если не найдётся русских поговорок, которые говорят о чём-либо, что пытаются везде (слишком и не по назначению) использовать. Посмотрите словарь русских пословиц.
P.S. Первое приходит на ум: "заставь дурака богу молиться, он себе и лоб расшибёт". Ещё? -- Andrew Krizhanovsky 10:36, 4 февраля 2013 (UTC)
- Пролистал словарь русских пословиц, богатое место. Информации о отношении наших пословиц к истории анти-паттерна золотой молоток - не нашел. Даже на уровне как у Марка Твена :) -- Волков Андрей 18:53, 16 июня 2014 (UTC)
Привязка к ПО
[править код]Статья как-то сильно привязана именно к разработке ПО и проектированию в общем. Почему? На мой взгляд, суть наиболее точно отображает фраза из анг. статьи — Golden hammer is an over-reliance on a familiar tool. И вообще, гляньте их версию, она куда более обобщенная, что, на мой взгляд, правильнее. --86.57.188.227 02:44, 22 октября 2013 (UTC)
Да, прошу простить, ибо точно о том же уже было написано постом выше,причем более внятно (про контекст) =| Как удалить свой пост не нашел, так что вот. Буду внимательнее впредь. --86.57.188.227 02:49, 22 октября 2013 (UTC)