|
01.09.2011, 14:29
|
#16
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Классы
да што ты говоришь.
посмотрю как ты в объёмном чужом коде ковыряться будешь, не зная, что откуда берётся.
.Squid +1, насчёт "убер функций" и т.п., что это проблема самой организации работы и философии.
|
в зду твою философию)))
Этот этап пройден несколько лет назад. Сейчас с этим кодом можно только работать.
Код УЖЕ написан, и его никто не будет переписывать. Можно сколько угодно говорить о его не совершенстве, но отсутствие венгерской нотации в таком уже написанном коде усложнила бы работу на порядок.
Класс должен
выполнять конкретную задачу
Код с функциями во весь экран - есть зло.
|
НЕТ идеальных архитектур. НЕТ идеального кода.
Академическое мышление, что чему должно и кто кому чем обязан малоценны в ентерпрайзе. Решение далеко не всегда оказывается самым эффективным, а перерешивать никто и ничего не будет.
Алсо классы и функции выполняют весьма себе определённые задачи. Просто задачи эти весьма объёмны.
Есть такой замечательный дядька - Джоэл.
В его книге о программировании очень не плохо расписана ситуация по поводу совершенства кода:
Пишет программист код. Внезапно у очень многих появляется непреодолимое желание взять и переписать. Начать всё заного, сделать всё чище и лучше. Почему? Да потому что код заполонили всякие костыли, фиксы, да и вообще он стал громозким и запутанным.
Но переписывать такое НЕЛЬЗЯ НИ В КОЕМ СЛУЧАЕ.
почему? Потому что на этот код потрачено много сил и средств. Он уже отлажен и работает. И вся его громозкость - результат фиксов багов, добавления функционала ВНЕЗАПНО потребовавшегося заказчику и т.п.
Именно так ф-ции, классы и решения различных задачь и разростаются со временем.
Создать грамотную архитектуру с нуля не возможно. Так или иначе всегда придётся вносить коректироки.
В данном случае венгерская нотация позволяет максимально эффективно находить деффекты и вносить коректировки.
то что МОГЛИ БЫТЬ маленькие ф-ции, самодокументируемый код, куча однозначных спецификаций и ответственных руководителей - это бесспорно. А ещё каждый обидатель этого форума МОГ БЫ БЫТЬ миллиордером. Все эти "могло бы, должно, обязано" - фигня. Оно уже есть, оно работает и в этом надо разбираться. И венгерская нотация позволяет разбираться быстрее и эффективней.
И каждый раз, когда берёшься за проект, не можешь быть уверен, что он не разрастётся, не зальётся говнокодом и тупыми индускими конструкциями. Потому внесение таких нотационных подсказок весьма не плохое решение.
P.S. соре за объём.. на работе делать нех, пока рабочий девайс не прокачают...
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.09.2011, 14:37
|
#17
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Классы
Создать грамотную архитектуру с нуля не возможно.
|
согласен с этим.
Начать всё заного, сделать всё чище и лучше. Почему? Да потому что код заполонили всякие костыли, фиксы, да и вообще он стал громозким и запутанным.
Но переписывать такое НЕЛЬЗЯ НИ В КОЕМ СЛУЧАЕ.
|
а с этим нет.
когда я писал свой первый двиг и его заполнили костыли, фиксы и он стал громоздким и запутанным, я написал новый с нуля, и это очень даже окупилось. я просто понял все ошибки прошлого кода и постарался написать без них. я понимаю если проект, использующий код, подходит к концу - тогда можно добавлять костыли, это будет дешевле. в ином случае надо срочно всё переписывать, иначе эксплуатация кода будет каждодневной пыткой.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.09.2011, 14:51
|
#18
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Классы
С расчётом на будущее использование - рефакторинг, один из отличных процессов, который несёт кучу профита для самого разработчика и продукта. Это делать нужно с умом, т.к. порой большое убер-бревно вот так не перепишешь, поэтому рефакторинг не простая задача, которая требует подхода.
А то что академические подходы не выживают в коммерции - с этим согласен. Только дополню: в школе, вас учат, и учитесь вы базируясь разным источникам, но не важнейшему - опыту. А лучший опыт, это коммерческий опыт.
Ты говоришь о проектах, с которыми тебе приходится работать, но они уже есть. Это не оправдание что так нужно теперь делать всё. Двигаться нужно вперёд, а не засиживаться на одном месте.
Да, в твоём случае, венгерская нотация, помогла бы, но это не оправдывает её. Т.к. она помогла бы для разбора ужасного кода. Получается что она применима для ужасного кода, и помогает там.
В хорошем и слаженном коде, таких проблем не возникает.
Другой момент, это "философия" и организация работ. И несмотря на твой комент "в зду..", ты потом как раз затрагиваешь эти моменты:
И вся его громозкость - результат фиксов багов, добавления функционала ВНЕЗАПНО потребовавшегося заказчику и т.п.
|
Проблема организации проекта. Такого не должно быть. Также, разработка кода с учётом его модульности и возможностей, никак не пострадает от "внезапных запросов", т.к. клиент не попросит писать конкретно вот такие строки, он лишь запросит клёвую фичу, которая потребует лишь дополнительную разработку на уровне бизнес логики, или даже фронт-енда, а это не влияет на сами классы никак, если они разработаны с умом..
Тут уже разговор перетекает в организацию проектов, и лид девелоперов, командную работу..
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.09.2011, 15:03
|
#19
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Классы
посмотрю как ты в объёмном чужом коде ковыряться будешь, не зная, что откуда берётся.
|
в нормально IDE если навести на переменую мышкой, появится подсказка, чем является данная переменная.
|
(Offline)
|
|
01.09.2011, 15:12
|
#20
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Классы
ну если ты высказался против венгерской нотации как таковой, так не приводи в пример только свои небольшие наработки))
лично я сам свой движок переписывал, переписываю и ещё раз перепишу :D
но это потому, что я никому не обязан сдавать его. И потому что он сравнительно крохотный по объёму.
Когда разрабатываешь продукт для заказчика, и понимаешь что изначально сделал что то не так, придётся допиливать то, что есть. а вот В СЛЕДУЮЩИЙ РАЗ взявшись за такое, ты уже будешь знать как подойти грамотней. Так люди и качаются.
Вот только вне домашней кухни выбрасывать продукт и начинать заного - верх идиотизма.
С расчётом на будущее использование - рефакторинг
|
миня тут никто не слушает, и ничего рефакторить не собирается
я отчасти с командой конечно согласен.. быстрее б просто уже выпустить это всё г-но, и отделаться..
>>Проблема организации проекта.
это ПОФИГ. Ещё раз повторяю - оно УЖЕ организовано.
>>В хорошем и слаженном коде, таких проблем не возникает.
хороший код в энтерпрайзе - утопия.
нельзя заранее знать насколько удачной выйдет огромная система.
в определённый момент она запрасто может "поплыть", и превратиться в кашмар. Венгерская нотация МОЖЕТ пригодится если код свалится в унылое говно, потому отказываться от неё - весьма и весьма самоуверенно.
Такого не должно быть
если они разработаны с умом..
|
опять эти "должно" и "если".
венгерская нотация просто крутая страховка, на случай если система разработана неудачно. И быть её противником, оче не правильно.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.09.2011, 15:13
|
#21
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Классы
Сообщение от Den
в нормально IDE если навести на переменую мышкой, появится подсказка, чем является данная переменная.
|
Далее можно нажать F12 (почти во всех VS), отправит туда где объявлена переменная, функция, класс и т.п. Также есть удобные инструменты такие как Object Viewer или удобный поиск. Есть функции для глобального переименования переменной (F2 в VS). Авто генерируемая документация о функциях.
Да куча всего. Другое дело тут пойдёт уже речь о более сложных процессах, со всякими темплейтами, рефлекциями и т.п. Там вот уже без знаний и разного рода исследований по коду будет тяжко. Особенно в рефлекции..
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.09.2011, 15:32
|
#22
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Классы
Я для себя открыл такую крутую штуку как Source Insight
но этого всего на самом деле не достаточно.
|
(Offline)
|
|
01.09.2011, 15:37
|
#23
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Классы
*взял попкорн*
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
01.09.2011, 20:07
|
#24
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Классы
falcon, так что, не будешь голословным, или пруфа не ждать ?
Проект с несколькими тысячами файлов исходников(минимум 2к) и весом в несколько гигов (минимум 2) на стол !
|
(Offline)
|
|
01.09.2011, 22:08
|
#25
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Классы
NitE, ам.. ну да, как раз думал, чоб в свободный доступ исходники не выложить :D
ваще-то я NDA подписывал))
могу минимально нарушить, рассказав, что работаю с SIP телефонами компании Avaya (т.е. по сути эти объёмные исходники компилятся в небольшую бинарку, которая крутится под жутко кастрированным и допиленным линухом встроенным в эти самые агрегаты )
но это врядли удовлетворит твоё NitE любопытство.
Можешь засчитать это как слив, но исходники я тебе не предоставлю))
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.09.2011, 22:18
|
#26
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Классы
когда я писал свой первый двиг и его заполнили костыли, фиксы и он стал громоздким и запутанным, я написал новый с нуля, и это очень даже окупилось. я просто понял все ошибки прошлого кода и постарался написать без них. я понимаю если проект, использующий код, подходит к концу - тогда можно добавлять костыли, это будет дешевле. в ином случае надо срочно всё переписывать, иначе эксплуатация кода будет каждодневной пыткой.
|
брат!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.09.2011, 22:34
|
#27
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Классы
falcon, ))) мне не нужны исходники, достаточно будет скриншота с замазанными именами файлов, если надо, и открытым пропертисом где видно коль-во файлов и суммарный вес. И чтоб без читерства !
|
(Offline)
|
|
01.09.2011, 22:37
|
#28
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Классы
NDA.. - он уже его нарушил, так ещё я бы не советовал.
|
(Offline)
|
|
01.09.2011, 22:41
|
#29
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Классы
Как то это глупо что ли.
Если это чото значит, окей, в понедельник всё будет
MoKa
ну блин, это же ТАК ВАЖНО чо..)))
МОЙ рабочий проект ЕСТЕСТВЕННО имеет решающее значение в венгерской нотации))
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо falcon за это полезное сообщение:
|
|
04.09.2011, 11:50
|
#30
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Ответ: Классы
У меня вопрос:
Если в функцию я передаю по ссылке класс, чтобы осуществить линейное преобразование(передвижение),хотя можно было бы обойтись ссылкой на матрицу.Сильно ли я теряю в производительности?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:33.
|