All streams
Search
Write a publication
Pull to refresh
11
0
Станислав Зеленский @eLBeatzzz

Пользователь

Send message
3D принтеры, которые печатают 3D принтеры, которые…
Я вначале тоже не комментировал простые и очевидные вещи. После Мартина также всецело стоял на позиции говорящего именования и прочего. Но… Судя по Вашему анализу моей никчемности, Вы достаточно опытный программист, раз можете давать такие суждения. И, конечно, в курсе, что над кодом работают несколько человек (иногда их называют командой).

Если абстрагироваться от простоты вещей и взглянуть на комментарий не как разъяснение чего-то, а как элемент метапрограммирования, то вы получаете мощный инструмент построения логики в отрыве от кода. Здесь комментарии стоят в качестве метаописания.

Я не претендую на глубоко продуманный комментариев, нет. И да, они лгут (о чем в частности предупреждал Мартин, которого по мнению andreycha на меня нет). Я пытался показать идею. Не надо читать код, чтобы понять его суть. Код может переписываться так, что внутри будут использованы полиморфные вызовы, табличные методы, запутанная иерархия, но метаописание должно оставаться легким. Поэтому комменты здесь смотрятся нелепо, но когда этот метод перепишется десяток раз, Вы возопите, что ничерта не понятно.
Принцип «одна точка входа одна точка выхода». Ты всегда знаешь, где выйдешь из метода. Далее, переменная result служит одновременно и условием цикла и возвращаемым значением. Она контролирует весь метод — это семантически правильно.
Насчет последнего утверждения и прерываний цикла — цитата из Макконнелла выше, если «какому-то мне» не верят, может старичек Стив что напомнит…
Я упомянул не «египетские» скобки, и не говорил про «прямые» скобки. Я сказал про Zend-way — бессмысленная и беспощадная смесь двух предыдущих (тело метода — египетские, все остальное — прямые).
Из Макконнелла навскидку:
Use of break eliminates the possibility of treating a loop as a black box. Limiting yourself to only one statement to control a loop’s exit condition is a powerful way to simplify your loops. Using a break forces the person reading your code to look inside the loop for an understanding of the loop control. That makes the loop more difficult to understand. Use break only after you have considered the alternatives. To paraphrase the nineteenth-century Danish philosopher Søren Kierkegaard, you don’t know with certainty whether continue and break are virtuous or evil constructs. Some computer scientists argue that they are a legitimate technique in structured programming; some argue that they are not. Because you don’t know in general whether continue and break are right or wrong, use them, but only with a fear you might be wrong. It really is a simple proposition: If you can’t defend a break or a continue, don’t use it.
С самого начала, с первого же кода увидел следующее. Нет комментариев. Какой бы человек не был умный — его код будут читать другие люди. Пусть даже и код для собеседования, но наличие комментариев будет только плюсом. Два — это тонкий момент — return из цикла, как и continue, а иногда и break, крайне нежелательны. Три — Zend-way расстановки скобок несколько пугает. Предложу свой вариант:
bool are_unique_characters(const std::string& str)
{
	// assume all chars are unique by default
	bool result = true;
	
	// flags for found chars, where index is char's ASCII code
	std::vector<bool> char_set(256, false);
	
	// iterate through string and set flags for found chars to true
	for (int i = 0; i < str.size() && result; ++i) 
	{
		// get ASCII code for i-th char
		int val = str.at(i);
		
		// get flag at val-th index
		result = !char_set[val];
		
		// set flag at val-th index to true
		char_set[val] = true;
	}
	
	return result;
}
Социальная сеть Южного Федерального Университета: incampus.ru/
Имеется ввиду, скорее всего, низкоуровневое программирование, хотя, тоже сомнительно называть это парадигмой…
Жаль, что не в Ростове (подставьте Ваш город), т.к. куда не глянь, то если интересная конференция — дефолт сити или Питер, Smth Developer Day(s) — дефолт сити или Питер, семинар — ну, вы поняли…
С первых строк почувствовал знакомый стиль изложения… Ну точно, Джоэл! Только вот хорошо бы было упомянуть, что это глава из книги Джоэл. И снова о программировании, а именно — Часть II. Советы будущим программистам, Глава 8. Опасности обучения на Java.
Не завелось…
Microsoft Windows XP [Version 5.1.2600] SP3
---------------------------
16 bit MS-DOS Subsystem
---------------------------
C:\DOCUME~1\SZELEN~1\Desktop\k29.com
The NTVDM CPU has encountered an illegal instruction.
CS:c000 IP:dede OP:ff ff ff ff ff Choose 'Close' to terminate the application.
---------------------------
Close Ignore
---------------------------
Планируется ли выпуск флагманской модели в стиле Sensation, но с QWERTY клавиатурой, как в Desire Z? Если да, то, пожалуйста, поделитесь примерными сроками анонса такой модели.
Вот только никто так не делает. Походите по своему коду и вы уведете что-то более реалистичное (один таб = 2 пробела):

A=Aaaaaaaaaaaa &&
Bbbbbbbbb;

Если теперь таб станет равен не двум пробелам, то вся красота оформления моментально нарушится.

A=Aaaaaaaaaaaa &&
Bbbbbbbbb;


Про вариант с 4 пробелами:
A = Aaaaaaaaaaaa &&
Bbbbbbbbb;

Но, по-моему, читабельность, в данном случае, рассматривается еще и на уровне операций:
A = Aaaaaaaaaaaa
&& Bbbbbbbbb
&& Ccccccccc;
ru.gen43.com — здесь приведено немного теории и есть сама программа.
По ссылке выдало 404 ошибку.
Это подход, основанный на марковских цепях. Он подробно описан в фундаментальном, по моему мнению, труде Зарипова Р. Х. в его книге «Кибернетика и музыка», 1971 года, по-моему.
Господа, отвечу тут на вопрос про результат. На следующей неделе я закончу топик про практическое применение. Сразу оговорюсь, что это, как бы сферическая коллаборация в вакууме. Будут рассморены 2 алгоритма: генерация марковскими цепями и синтез на основе порождающих грамматик. Первый алгоритм компетентен только в вопросах звуковысоты, второй — в вопросах ритма.
Надеюсь, к этому времени я найду свою дипломную работу, а именно программу, чтобы можно было пощупать как это работает. Ссылка на программу будет так же в следующем топике. Спасибо за интерес к теме, а пока я ушел наслаждаться отпуском.
2

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity