Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Конвенции (http://www.flasher.ru/forum/showthread.php?t=207691)

2misha 30.04.2014 22:34

Конвенции
 
Для чего программистам соблюдать конвенции какие-то?

dark256 30.04.2014 22:45

Солюдение конвенций дает:
1. +500 к ЧСВ
2. Ускорение компиляции кода до 270%
3. Повышение скорости работы кода до 300%
4. Можно даже вообще ничего не кодить - работа сама будет делаться...
5. Гигантские возможности троллить программеров, которые занимаются делом, а не фэншуем.
:)))))))

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

Как-то так.

Если пишешь для себя - пофигу. Аутсорсишь - надо вот так вот выделываться...

udaaff 01.05.2014 01:40

А мне и для себя приятно выделываться )

Sintesis 01.05.2014 01:57

А догмы кто-то соблюдает? Например не более 5 приватных переменных на класс, не более 21 строчки в функции?

ZackMercury 01.05.2014 02:00

Цитата:

Сообщение от Sintesis (Сообщение 1165020)
А догмы кто-то соблюдает? Например не более 5 приватных переменных на класс, не более 21 строчки в функции?

В init бывает больше кода, чем 21 строчки. А так я почти никогда не нарушаю приведённый стандарт попросту потому, что оно не нужно и выглядит не очень опрятно.

in4core 01.05.2014 04:33

Цитата:

В init бывает больше кода
Аддчайлды и координаты - да. В другом случае более 21 быть не может. У меня может инит доходить и до 100 строчек, если объектов море, скажем пишем сайт :) координаты никто не отменял.

Sintesis - ваше сообщение бред. Кто придумал эти догмы, особенно про 5 приватов? В нормальном кодостроении ВСЕ переменные приватные, и если их только < = 5 ОБЯЗАТЕЛЬНО - то дело хорошим не кончится

dark256 01.05.2014 10:14

Цитата:

Сообщение от Sintesis (Сообщение 1165020)
А догмы кто-то соблюдает? Например не более 5 приватных переменных на класс, не более 21 строчки в функции?

Нет. Иначе не останется времени на выпить пива после работы....
И вообще, про бритву Оккама тут кто-нибудь слышал? ;)

caseyryan 01.05.2014 12:09

Цитата:

Сообщение от 2misha (Сообщение 1165008)
Для чего программистам соблюдать конвенции какие-то?

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

dark256 01.05.2014 12:10

Цитата:

Сообщение от caseyryan (Сообщение 1165035)
Собственно, если нравится чтобы везде был бардак, и этот г-код кроме самого автора больше никому не придется читать, то можно и не соблюдать. Кто-то не парится и что у него дома свинарник и горы посуды не мытой постоянно) Это примерно то же самое

А если на конвенции плевать, а дома все как в музее? ;)

caseyryan 01.05.2014 12:26

Цитата:

Сообщение от dark256 (Сообщение 1165036)
А если на конвенции плевать, а дома все как в музее? ;)

Что-то слабо в это верится)

Wolsh 01.05.2014 12:48

Не понимаю позицию "если читать другим, то делайте хорошо, а для себя пишите ***код".
Боб Мартин например весьма убедительно трындит о том, что в процессе написания кода мы 75% времени его ЧИТАЕМ а не пишем. А уж когда начинаем писать другие классы и обращаемся к уже написанным частям, то, понятно, все 100%. И я с ним полностью согласен. Писать чистый код надо прежде всего ДЛЯ СЕБЯ, а не для каких-то мифических Контролёров и сослуживцев.

caseyryan 01.05.2014 13:03

Wolsh, если это был ответ на мой пост, то я там вначале написал "если нравится, чтобы везде был бардак" ;)
Если человеку не все равно, что у него творится в коде, то он сам, без подобных вопросов будет стремиться к написанию чистого кода

iNils 01.05.2014 14:19

Цитата:

Сообщение от Sintesis (Сообщение 1165020)
А догмы кто-то соблюдает? Например не более 5 приватных переменных на класс, не более 21 строчки в функции?

5 переменных на класс?!

Wolsh 01.05.2014 15:12

Да не, это бред. Это можно рассматривать как ориентир, типа "у тебя стало больше пяти переменных в классе? Подумай, может стоит выделить еще одну сущность? Разделить ответственности, выделив наследников?", но не более. Я думаю, нормальный девелопер итак об этом должен думать всегда, чтобы не плодить мультитулзы. Но как догмат, обязательный к соблюдению везде и всегда, это бред.

Добавлено через 3 минуты
caseyryan, да нет, это было сказано всем. В реальности ответ новичку "это надо для команды сослуживцев" означает строгое "это нафиг никому не надо". Поэтому не стоит вообще использовать такой аргумент. Человек, работающий в команде, просто не задает таких вопросов.

Sintesis 02.05.2014 16:37

Цитата:

Сообщение от Wolsh (Сообщение 1165053)
Это можно рассматривать как ориентир, типа "у тебя стало больше пяти переменных в классе? Подумай, может стоит выделить еще одну сущность?

Дада Wolsh, именно для этого. Это правила чистого кода! Ну ребят, что это вы забываете о FlexPMD?

Цитата:

FlexPMD
Техническая служба Adobe разработала инструмент FlexPMD, позволяющий оценить качество кода
ActionScript 3.0. FlexPMD — это инструмент, схожий с JavaPMD, но предназначенный для ActionScript.
FlexPMD оценивает непосредственно исходный код ActionScript 3.0 или Flex, помогая повысить его качество.
Инструмент обнаруживает фрагменты неправильного, неоправданно сложного и неоправданно длинного
кода, а также случаи некорректного использования жизненного цикла компонентов Flex.
FlexPMD — это проект с открытым исходным кодом от компании Adobe, доступный на странице
http://opensource.adobe.com/wiki/dis...lexpmd/FlexPMD. Подключаемый модуль Eclipse также доступен на
странице http://opensource.adobe.com/wiki/dis...Eclipse+plugin.
FlexPMD помогает оценить код и сделать его максимально чистым и оптимизированным. Сила FlexPMD — в
его расширяемости. Разработчик может создать собственный набор правил для оценки любого кода.
Например, можно создать правила для обнаружения чрезмерного использования фильтров или других
неудачных фрагментов кода, которые требуется исправить.
Эта штука даже встроена в FlashDevelop. Tools>FlashTools>Analyze Project Source Code

dark256 02.05.2014 18:43

Суть всех ваших эсхатологических реминесценций давно уже описана в литературе:

Цитата:

И никуда не денешься: литературный вкус у него великолепный, слабости любого художественного текста он вылавливает мгновенно, способность к литературному анализу у него прямо-таки редкостная, я таких критиков и среди наших профессионалов не знаю. И вот этот талант к анализу роковым образом оборачивается его неспособностью к синтезу, потому что сила писателя, на мой взгляд, не в том, чтобы уметь найти единственное верное слово, а в том, чтобы отбросить все заведомо неверные. А Леня, бедняга, сидит и день за днем мучительно, до помутнения в мозгах, взвешивает на внутренних весах своих, как будет точнее сказать: «она тронула его руку» или «она притронулась к его руке»... И в отчаянии он звонит за советом Вале, и жестокий Валя Демченко, не теряя ни секунды, отвечает ему знаменитым аверченковским: «Она схватила ему за руку и неоднократно спросила, где ты девал деньги...» И тогда он в отчаянии звонит мне, а я тоже не сахар, и ему остается только упавшим голосом упрекнуть меня в грубости...

Котяра 06.05.2014 13:10

Насчёт 5 приватов - это на самом деле не такой уж и бред. В 90% случаев можно провести такую декомпозицию/рефакторинг и, например, у меня в 90% случаев так и есть - приватов, да и пабликов не больше 5. Другое дело, что не всегда это будет оптимально с точки зрения производительности и читабельности. Тут нужны компромиссы. Но если количество таких приватов переваливает за десяток и это не какой-нибудь css враппер, то уже реально есть повод для задуматься.

caseyryan 06.05.2014 17:07

Цитата:

то уже реально есть повод для задуматься.
Да ну. Попробуй написать какую-нибудь игрульку с физ движком, и уложиться в 5 приватов. Это просто не реально. По-любому потребуется объявлять кучу тел, джоинтов, скоростей и т.п. Тут уж задумывайся не задумывайся, а переменных потребуется больше

Котяра 06.05.2014 19:12

Не факт. Делаешь для каждого типа тела свой классик. Объявление пишется в каком-нить конфиге и тому подобное. Если это у вас вызывает затруднения - то тоже есть повод задуматься. )
И я повторяю про 90% и специфику.

caseyryan 06.05.2014 20:33

Цитата:

Сообщение от Котяра (Сообщение 1165392)
Не факт. Делаешь для каждого типа тела свой классик. Объявление пишется в каком-нить конфиге и тому подобное. Если это у вас вызывает затруднения - то тоже есть повод задуматься. )
И я повторяю про 90% и специфику.

Все равно можно поставить задачу, где это не реально)
Если только пойти на хитрость, и все ссылки на объекты хранить в каком-нибудь массиве

alexcon314 06.05.2014 23:33

21 (строк в функции) -это я еще понимаю. Очко. Нет вопросов.
А в чем магия числа 5? Это потому, что пальцев на руке 5?
А...наверно как-то связано со зрением, наверно, с монитора удобно чтитать, в поле зрения блок текста больше пяти строк не помещается...Не..наверно, вообще, статистически характеристик у простых объектов в большинтсве 5..x,y,z,m и линейный размер... ээ.. а как так выходит? Загадка...

dark256 06.05.2014 23:43

Нда.... и вот такой программер садится писать игру в крестики нолики... 9 клеток.... и всё.... надо писать 9 классов... иначе никак....

Котяра 07.05.2014 11:36

Цитата:

А в чем магия числа 5? Это потому, что пальцев на руке 5?
Ну как же? 4 мало, а 6 много)
Вообще цифра с потолка, конечно.

Возьмём для примера абстрактный Sprite, у него по-хорошему не так уж и много должно быть приватов.
Выделяем новые сущности объединяющие группы приватов: вместо _width/_height вводим _size:Size, вместо _x,_y,_rotation вводим _position:Position и т.д и т.п.
Кроме того, полезно выделять некоторые приваты в класс родителя, пусть у него даже будет (пока) один единственный наследник)
Например те же _size и _position перемещаем в класс родителя DisplayObject.
_children уходит в DisplayObjectContainer.

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

Добавлено через 1 минуту
Цитата:

Нда.... и вот такой программер садится писать игру в крестики нолики... 9 клеток.... и всё.... надо писать 9 классов... иначе никак....
не обязательно 9, но как минимум 3 только для клеточек)
для нолика, для крестика + общий их родитель.

alexcon314 07.05.2014 13:06

А сколько рекомендуют держать детей в цепи наследования?

caseyryan 07.05.2014 14:06

Цитата:

Сообщение от alexcon314 (Сообщение 1165434)
А сколько рекомендуют держать детей в цепи наследования?

Китайцы рекомендуют не больше 2 детей :D

alexcon314 07.05.2014 16:29

У России другая политика :).

ZackMercury 07.05.2014 16:33

Цитата:

Китайцы рекомендуют не больше 2 детей
Я думаю, этот закон нарушает почти каждая семья в Китае.


Часовой пояс GMT +4, время: 11:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.