Автор Тема: О качестве.  (Прочитано 6585 раз)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
О качестве.
« : Август 24, 2012, 04:28:52 pm »
По моему, это достойно отдельной темы.

Оберон, совершенный код, всё такое... проще надо быть...

Когда быть хорошим плохо
Цитировать
Учитель керамического дела объявил в день открытия, что разобьет класс на две группы. «Те, кто сидят слева» — сказал он: «будут оцениваться только по количеству проделанной работы, те, кто справа — только по её качеству». Его методика была проста, в последний день он принесет весы и взвесит работу группы «количество»: 50 фунтов горшков это «5», сорок фунтов горшков это «4» и так далее. Те, кто оцениваются по «качеству», однако, должны сделать один, пусть и совершенный, горшок, чтобы получить «5». Время сдачи пришло, и обнаружился любопытный факт: работы лучшего качества были сделаны в группе, оцениваемой по количеству. Похоже, в то время, как группа «количество» упорно штамповала свои работы и училась на своих ошибках, группа «качество» теоретизировали об идеале и, в конце концов, только и могла показать свои старания и грандиозные теории об идеале, а также кучу бесполезной глины.

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

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

Между прочим, я лично тоже подвержен этой болезни. Причем достаточно сильно. Но я таки борюсь и стараюсь таки меньше думать и больше делать и вроде бы начало получаться. :-). А то студенты/стажеры меня зачастую превосходят в продуктивности (пока я думаю, они 10 раз сделают, переделают и доведут программу до вменяемого состояния).

Да, помнится был на одной конференции, там один товарищ (автор популярного поискового сервера Sphinx Андрей Аксенов) был с докладом "Как прекратить писать", где рассказывал о видах программистов и проблемах отрасли (черт, звучит как-то пафосно, в отличае от самого доклада). Кстати, крайне рекомендую посмотреть видео выступления: http://www.addconf.ru/event.sdf/ru/add_2010/authors/andrewAksenow/stopWriting

Так вот, он в частности говорил что на самом то деле программисты делятся на две категории: Ффтыкатели и, пардон, но из песни слов не выкинешь, Хуяторы. Первые соответственно не пишут а долго-долго ффтыкают как лучше написать, а товарищи из группы Х фигачат код и перефигачивают его. И что лучше быть в группе Х нежели в группе Ф (ибо Х действительно делают а не рассуждают).
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

DIzer

  • Гость
Re: О качестве.
« Ответ #1 : Август 24, 2012, 04:38:13 pm »
Это вообще очень-очень точно характеризует то, что происходит с Обероном и, особенно, в Оберонкоре....
А что конкретно то характеризует - сложности  концептуальной я особой не вижу ни там ни  здесь...?

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: О качестве.
« Ответ #2 : Август 24, 2012, 04:45:34 pm »
А вот еще на хабре перевод статьи в тему, который наверняка будет, не задумываясь, поднят на щит в оборонкоре:

http://habrahabr.ru/post/150125/
Цитировать
Самый ценный совет по программированию, который я получил

«Год или два, с момента начала работы в Bell Labs, я работал в паре с Кеном Томпсоном над интерактивным графическим языком, разработанным Джерардом Хольцманом (Gerard Holzmann). Я печатал быстрее, поэтому я сидел за клавиатурой, а Кен стоял позади меня. Мы работали быстро, и когда компилятор выдавал ошибку, я рефлективно начинал закапываться в проблему, изучая стек вызовов, вывод программы, запускал отладчик и так далее. Но Кен просто стоял рядом и думал, игнорируя меня и код, который мы только что написали. Вскоре я заметил закономерность: Кен зачастую понимал, в чем проблема, раньше меня и произносил: „Я знаю, что не так“. Обычно он был прав. Я понял, что Кен выстраивал ментальную модель кода и, когда что-то ломалось, это была ошибка в модели. И думая о том, как эта проблема могла возникнуть, он выяснял, в каком месте модель была неверна или где наш код мог неправильно эту модель отразить.

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

Я понимаю, что это больше вопрос стиля. Некоторые настаивают на построчной отладке всего на свете специализированными инструментами. Но я теперь верю, что думать, не глядя в код, — это лучший инструмент отладки, потому что он ведет к лучшему программному обеспечению». — Роб Пайк

При этом никто конечно же не будет учитывать, что подобная методика возможна только в тех случаях когда внешная среда относительно вашей строящейся программы, абсолютно предсказуема и полностью изучена. Да, и, к тому же, достаточно проста. Например если пишем компилятор - то такой подход вполне годится. Или если у нас какая-то сложная математика (символьная алгебра там, или еще что заковыристое). В общем, когда у нас "площадь поверхности" программы много меньше её "объема".

В остальных же случаях подобная методика не будет работать вообще, ибо банально не достаточно данных и без дебаггера не обойтись. А таких, остальных случаев, если не подавляющее большенство, то как минимум не меньше чем вышеописанных. Можно бесконечно долго представлять модель вашей программы и искать в ней изъян, если у среды в которой она работает, внешнем мире с которым она взаимодействует, есть неучтенная, неизвестная для вас особенность (а так бывает очень часто, почти всегда). Ну, например что раз в секунду произвольная ячейка памяти вне зависимости от вашей программы, меняет свое значение (хотя пример натянутый но он может иметь место на практике).
« Последнее редактирование: Август 24, 2012, 04:47:36 pm от valexey »
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: О качестве.
« Ответ #3 : Август 24, 2012, 04:46:46 pm »
Это вообще очень-очень точно характеризует то, что происходит с Обероном и, особенно, в Оберонкоре....
А что конкретно то характеризует - сложности  концептуальной я особой не вижу ни там ни  здесь...?
Психологическая составляющая:
Цитировать
вы будете вынуждены наблюдать как те, у кого меньше навыков и знаний, постоянно превосходят вас, пока вы гневно и резко критикуете их со стороны
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

DIzer

  • Гость
Re: О качестве.
« Ответ #4 : Август 24, 2012, 05:03:39 pm »
Психологическая составляющая:
Цитировать
вы будете вынуждены наблюдать как те, у кого меньше навыков и знаний, постоянно превосходят вас, пока вы гневно и резко критикуете их со стороны
А, вы про это... но при чем здесь качество?  вы говорите про профессиональное развитие личности. хмм неужели вы считаете что гонение инакомыслящих в коровнике есть проявление зависти? - дико как то.. И потом те у кого "меньше навыков и знаний" как правило прогрессируют быстрее (в особенности, если от этих "навыков и знаний" зависит жизнь)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: О качестве.
« Ответ #5 : Август 24, 2012, 05:09:41 pm »
Психологическая составляющая:
Цитировать
вы будете вынуждены наблюдать как те, у кого меньше навыков и знаний, постоянно превосходят вас, пока вы гневно и резко критикуете их со стороны
А, вы про это... но при чем здесь качество?  вы говорите про профессиональное развитие личности. хмм неужели вы считаете что гонение инакомыслящих в коровнике есть проявление зависти? - дико как то.. И потом те у кого "меньше навыков и знаний" как правило прогрессируют быстрее (в особенности, если от этих "навыков и знаний" зависит жизнь)
Полагаю что жетское неприятие "мейнстрима" это, в том числе, и проявление зависти. Гонения же инакомыслящих (в основном тех кто обмолвился что и в мейнстриме есть нечто разумное и верное) на это так или иначе завязаны.

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

DIzer

  • Гость
Re: О качестве.
« Ответ #6 : Август 24, 2012, 05:22:45 pm »
лично мне кажется что пространные суждения вида "когда ты уже знаешь как хорошо, и как плохо (по крайней мере тебе кажется что ты можешь отличить хорошее решение от плохого)" когда идет речь об оценке с претензией на обьективность и поучательство... мм.. некорректны, в принципе.
Например, если я говорю "'это хорошо"- это всего лишь эквивалент "мне это нравится, я считаю что это верно".. здесь же вы подразумеваете нечто другое - не правда ли?  ;)

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: О качестве.
« Ответ #7 : Август 24, 2012, 06:06:31 pm »
А вот еще на хабре перевод статьи в тему, который наверняка будет, не задумываясь, поднят на щит в оборонкоре:

http://habrahabr.ru/post/150125/
Цитировать
Самый ценный совет по программированию, который я получил

Тольо хотел эту ссылку тут запостить -- а она уже тут как тут )))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: О качестве.
« Ответ #8 : Август 24, 2012, 10:35:10 pm »
лично мне кажется что пространные суждения вида "когда ты уже знаешь как хорошо, и как плохо (по крайней мере тебе кажется что ты можешь отличить хорошее решение от плохого)" когда идет речь об оценке с претензией на обьективность и поучательство... мм.. некорректны, в принципе.
Например, если я говорю "'это хорошо"- это всего лишь эквивалент "мне это нравится, я считаю что это верно".. здесь же вы подразумеваете нечто другое - не правда ли?  ;)
Возможно слово "правильно" лучше соответствует сказанному.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Влад Жаринов

  • Full Member
  • ***
  • Сообщений: 189
    • Просмотр профиля
Re: О качестве.
« Ответ #9 : Август 25, 2012, 08:40:46 am »
Так, эта... может, качество (и применение модели к коду) есть результат правильного подхода к построению моделей, а по ним - кода?.. не о том ли alexus говорит?..

DIzer

  • Гость
Re: О качестве.
« Ответ #10 : Август 25, 2012, 03:39:14 pm »
Так, эта... может, качество (и применение модели к коду) есть результат правильного подхода к построению моделей, а по ним - кода?.. не о том ли alexus говорит?..
Да - это основа, собственно по этому я скептически отношусь к  "чудо методам" обучения программированию "за 2 месяца" - в лучшем случае такие методики обучают известным техникам кодирования и ЯП. Но тут вы должны, понимать что философия жизни таких людей - сильно отличается от философии "горшечников" пропагандируемой в этой ветке Алексеем и иже с ним..но можно прийти к "общему знаменателю" если рассматривать их как первый этап в становлении специалиста ITишника (только не забывайте что в НАШЕЙ РЕАЛЬНОСТИ - у ГРАМОТНОГО КОДЕРА значительно больше "вакантных мест").