Программистам: как делаете объёмные проекты?

1 234 5
Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#21
_vb_:
Все варианты говнокода поскипаны.
Для меня, например, вот такой:

slider.restore_settings()

print "автопрокрутка ", slider.isAutoScroll ? "вкл" : "выкл"

Ну со скроллом понятно, а суть других переменных - телепатировать?

zexis
На сайте с 09.08.2005
Offline
388
#22

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

1) Разбивать задачу на отдельные, максимально не зависимые блоки (объекты). Каждый блок должен иметь не большое количество входных и выходных данных. Которые называются интерейсом. Реализация блока НЕ должна использовать не какие глобальные переменные.

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

3) Писать подробные комментарии. Сам я когда пишу программу комментариев пишу не очень много, так как код часто переписывается. Но примерно через 1-2 недели, когда код уже стабилен, я снова просматриваю код и пишу подробные комментарии.

_vb_
На сайте с 25.07.2009
Offline
104
#23
Алексей Барыкин:
Ну со скроллом понятно, а суть других переменных - телепатировать?

Если брать ваш пример, то могу предложить следующее:

slider.itemsOnScreen
slider.itemsInSlide
if slider.mode == slider.MODE_HORIZONTAL
slider.changeSpeed
slider.isCircleMode
slider.autoScrollDelay

Что такое slider_content из вашего примера - не понял даже с комментариями.

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

Саратовская фракция серча (). Давайте посчитаемся.
edogs software
На сайте с 15.12.2005
Offline
775
#24
Алексей Барыкин:
Ну со скроллом понятно, а суть других переменных - телепатировать?

полагаем что это не айс


$slider_content = read_param('slider_content', 0); // контент слайдера (по умолч. - из БД "слайды")
$slider_count = read_param('slider_count', 1); // кол-во слайдов на экране (по умолч. - 1)
$slider_size = read_param('slider_size', 1); // кол-во элементов в слайде (по умолч. - 1)
потому что а) копипаста много б) комменты на русском в) умолчания задаются при вызове функции?! в) названия переменных не очевидны

считаем что лучше так


$slider_CFG=uploadConfig('slider');
//и где-то в функциях
function uploadConfig($type,$source='db') {
}
// и где-то в конфиге
:slider // format: config_variable_name:default_value;
slides_number:1;
elements_in_slide:1;
Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
_
На сайте с 24.03.2008
Offline
381
#25
Алексей Барыкин:
Ну со скроллом понятно, а суть других переменных - телепатировать?

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

И никакие простыни написанные по-русски вам не помогут (на минутку представим, что следующий работающий с кодом - индус).

Тут тесты составляли... оставили вопрос... к соискателям.

Вопрос ХХ: Что произойдет в результате:
int x=2, y=4, z= ((x|++y +y)>4) ? x|y : --x +4 ;
1. x=1; y=2; z=4
2. x=2; y=2; z=4
3. x=2; y=2; z=2
4. возникнет ошибка на этапе трансляции
5. возникнет ошибка на этапе выполнения
6. x=2; y=3; z=3
7. иное _______

Возьметесь ответить :) ?

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#26

В моём конкретном случае нужны именно переменные, для передачи их AS IS в HTML-шаблон и функции с умолчаниями, которые работают с уже прочитанным массивом настроек

---------- Добавлено 26.01.2012 в 17:59 ----------

_SP_:
Если по имени вашей переменной непонятна её суть, то вы отправляетесь за проходную без выходного пособия.
И никакие простыни написанные по-русски вам не помогут (на минутку представим, что следующий работающий с кодом - индус).

Тут можно переборщить и названия переменных делать в стиле Льва Толстого :)

Что тоже не айс.

_SP_:

Тут тесты составляли... оставили вопрос... к соискателям.
<некий код на секретном языке программирования>

Возьметесь ответить :) ?

Язык и компилятор - ?

---------- Добавлено 26.01.2012 в 18:01 ----------

Может еще какого говнокода своего запостить, чтобы мне нахаляву аудит провели? %-)

rtyug
На сайте с 13.05.2009
Offline
263
#27

была тема такая похожая:

/ru/forum/596257

если никто не сказал про MVC, то MVC одна из лучших шаблонов проектирования со всеми принципами... (правда, я бы ORM не рекомендовал пихать куда попало)

Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
_
На сайте с 24.03.2008
Offline
381
#28
Алексей Барыкин:

Язык и компилятор - ?

Это неважно. Считайте С++.

---------- Post added 26-01-2012 at 18:04 ----------

Алексей Барыкин:
Тут можно переборщить и названия переменных делать в стиле Льва Толстого :)
Что тоже не айс.

В этом случае вам надо исправить всю архитектуру.

Точнее выкинуть имеющееся.

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#29
_SP_:
Это неважно. Считайте С++.

int x=2, y=4, z= ((x|++y +y)>4) ? x|y : --x +4 ;

(x|++y +y) -заведомо больше 4

=> выполнится ветка x|y

x = 2, y = 5 (инкремент в условии)

z = 2|5 = 7

Ответ 7. Иное x = 2, y = 5, z = 7

_
На сайте с 24.03.2008
Offline
381
#30

Верный ответ:

Иное: в результате произойдет НЕМЕДЛЕННОЕ увольнение.

1 234 5

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий