Как постичь непостижимое

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

DetSimen пишет:

Слава Богу, сподобился таки я на старости лет узнать, что такое декомпозиция. Теперь понял хоть. :-)

Да ежелип ты был не за 5 тыщ км от Москвы, я б еще и самогончика налил!  На бооярышнике и рябинке, для сердца пользительного.

TD27T
Offline
Зарегистрирован: 08.04.2016

wdrakula пишет:

Ты ведь начинающий программист (и электронщик)

Два из двух мимо. Программист не начинающий. Не электронщик вообще, ковыряюсь в ардуинках изредка.

wdrakula пишет:

Так какого же хера ты влез со своим мнением? Оспорить профессионала? То, что тебе не стыдно, это ясно, это возрастное, ...но хоть смешно?
А что так агрессивно-то? Цивилизованные люди же, как-никак... 
Во-первых, в общем случае, если профессионал несёт херню, то почему бы его и не оспорить. Во-вторых, профессионалы - они на то и профессионалы, что новичками были довольно давно и забыли каково это.
 
Теперь по теме.
Грамотно писать читаемый и сопровождаемый код можно только медодом ДЕКОМПОЗИЦИИ, основы которого любезно изложил Евгений.
 
 
Я что-то где-то говорил против метода декомпозиции как такового? Я говорил, что не надо советовать его новичкам, потому что процедура эта не то чтобы очень простая. И требует весьма неплохо ориентироваться в возможностях и ограничениях и .... писал уже это всё там выше, поищите. Если бы это было не так, то почему слой икры на хлебе архитекторов потолще, чем у кодеров.
 
В функции выделяют не только повторяющиеся части кода, но даже однократно используемые, ради логики и простоты чтения блока кода верхнего уровня.
 
Опять же, не надо кричать. Я понимаю, что так делают и даже и не возражаю не разу. Возражаю я против того, чтобы ограничение на количество строк в функции влияло на структуру приложения.
 
Доступный твоему мозгу пример из практики Ардуино - это вызов (наприммер) lcd.init(). Он производится ровно ОДИН раз в коде. По твоей логике его нужно заменить на содержимое, так ;) 

Не так.

b707
Онлайн
Зарегистрирован: 26.05.2017

TD27T пишет:

А самый большой SQL-запрос, в котором доводилось ковыряться, был порядка 5000 строк. Вот это ад был, да.

SQL тоже поддерживает процедуры, вы в курсе? Не говоря уж о том, что часто проще воспользоваться временной таблицей или представлением, чтобы разделить огромный запрос с кучей вложенных подзапросов на несколько более коротких логических кусков.

Так что в итоге - пока все так же. То, что вы не видите очевидной бредовости запроса в 5000 строк - не отменяет того, что это так и есть

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

TD27T пишет:

wdrakula пишет:

Ты ведь начинающий программист (и электронщик)

Два из двух мимо. Программист не начинающий.

Это твоя цитата , отсюда.

 -- Не умею. Плюсы для меня не родной язык. Стараюсь постигать.

Для программиста не бывает "плюсы не родной". Бывает для других АйТи профессий, веб...прости Господи...дизайнер, СУБД-шник, или еще зверек какой редкий, но не программист. И даже не потому, что С/С++ основна любого программирования, а просто потому, что для програмиста нет вообще разницы, на каком языке писать.

Хотя, если тебе нравится называть себя програмистом, то кто я такой, что запрещать? ;)

Запрещателя у нас запретили ...злые админы :(((.

------------------------

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

TD27T
Offline
Зарегистрирован: 08.04.2016

wdrakula пишет:

Это твоя цитата , отсюда.

 -- Не умею. Плюсы для меня не родной язык. Стараюсь постигать.

Для программиста не бывает "плюсы не родной". Бывает для других АйТи профессий, веб...прости Господи...дизайнер, СУБД-шник, или еще зверек какой редкий, но не программист. И даже не потому, что С/С++ основна любого программирования, а просто потому, что для програмиста нет вообще разницы, на каком языке писать.

Хотя, если тебе нравится называть себя програмистом, то кто я такой, что запрещать? ;)

Запрещателя у нас запретили ...злые админы :(((.

В дипломе написано инженер-программист. Разрабатываю программы - приложения СУБД. Стало быть, программист, как ни крути. Про "не родной" - не так выразился наверное. Скорее, основательно подзабытый. От плюсов отошёл году в 2002-2003 где-то и с тех пор не касался, пока не взялся за дуинку.

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

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

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

"узкий специалист подобен флюсу" - шутка старая. Учись, если тебе интересно. Это здорово.

Пример хорошего, просто очень хорошего кода - это современное ядро Линуха. Скачай и посмотри. Это чистый, процедурный Си, не С++. Раньше были куски на С++, теперь их нет.

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

Конечно там есть и длинные функции. Это бывает необходимо для целостности.

Но ты не прав в главном - в расстановке приоритетов. Если у тебя выходит длинная функция, то думай как ее сократить.

Знаешь поговорку: "Старайся делать хорошо, плохо - оно само получится!".

Профи может понимать, почему ему необходима длинная функция, у нуба таких задач просто не может встать.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

TD27T пишет:

Во-первых, в общем случае, если профессионал несёт херню, то почему бы его и не оспорить. 

Для начала нужно быть стопудово уверенным, что это херня, а не просто "ты не понял профессионала потому, сам - чайник". Поэтому первое действие - не оспаривать, а задачть вежливый вопрос - попросить прояснить. это место.

Но это не для тебя - у тебя ж "в дипломе написано".

В общем, написано у тебя может быть всё что угодно, но после "в ардуино нет полиморфизма", sql-запроса в 5 тыс. строк и прочих перлов ... программист из тебя, как из меня фуболист(а футболист из меня ... хотя мяч от судейского свистка отличаю довольно уверено!)

TD27T
Offline
Зарегистрирован: 08.04.2016

wdrakula пишет:

"узкий специалист подобен флюсу" - шутка старая. Учись, если тебе интересно. Это здорово.

Учусь по-маленьку, угумс.

wdrakula пишет:

Но ты не прав в главном - в расстановке приоритетов. Если у тебя выходит длинная функция, то думай как ее сократить.

Поясню немного специфику приложений СУБД. Частенько, блок кода имеет такую структуру: выбираем данные из таблиц, обрабатываем, компонуем, отдаём пользователю; забираем данные от пользователя, обрабатываем, записываем. Так вот это "обрабатываем" - оно специфично для конкретной выборки в конкретной точке бизнес-логики. И всё что могло быть абстрагировано - оно уже абстрагировано,  остальное смысла нет - всё равно больше нигде не понадобится. Ну и смысл огород с лишними вызовами городить?

TD27T
Offline
Зарегистрирован: 08.04.2016

Ворота пишет:

после "в ардуино нет полиморфизма" ...

Так его и нет. rtti нет, да и нафиг он в МК не упал. А без него какой полиморфизм? Одно название...

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

TD27T пишет:

Ворота пишет:

после "в ардуино нет полиморфизма" ...

Так его и нет. rtti нет, да и нафиг он в МК не упал. А без него какой полиморфизм? Одно название...

Мда. В ардуино мошт полиморфизма и нет ( што это в данном контексте?). А вот в GCC C++ есть. И никакой RTTI, на который шарпокодеры неистово дрочут, для этого не надо. Совсем.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

TD27T пишет:

Ворота пишет:

после "в ардуино нет полиморфизма" ...

Так его и нет. rtti нет, да и нафиг он в МК не упал. А без него какой полиморфизм? Одно название...

Вот именно об этом я и говорил. После таких заявлений, не остаётся никаких сомнений в том, что программист из тебя, как из говна пуля, прости, Господи.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

wdrakula пишет:

Для программиста не бывает "плюсы не родной". Бывает для других АйТи профессий

Теперь буду знать, что программистов на Фортране не бывает.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

TD27T пишет:

Ворота пишет:

после "в ардуино нет полиморфизма" ...

Так его и нет. rtti нет, да и нафиг он в МК не упал. А без него какой полиморфизм? Одно название...

О, ещё один с дипломом "Осторожно, специалист!". Скрестили ужа с ежом, млять. Инженер-программист оно, эвона как, оказывается.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

andriano пишет:

Теперь буду знать, что программистов на Фортране не бывает.

Как и водителей "жигулей". Таковым можно быть по ситуации, но не по профессии.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Ну, жигули не очень удачная аналогия. Форд - я бы еще понял...

Chichay
Offline
Зарегистрирован: 12.03.2018

Ну Вы блин даете! ))) Не поленился ипрочитал все что вы тут понаписали))) 

Я понял, вам, короче в одном кабаке водку пить нельзя. Вы не только покалечить друг друга можете, но летальные исходы могут быть)))

Не ссорьтесь))) Предлагаю всем вместе сегодня за ужином по стопочке бахнуть "за програмизм!"

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

Chichay
Offline
Зарегистрирован: 12.03.2018

Максимальная длинна вроде 82 символа!!!

//  Если строка не начинается с "$GNGLL",
078     // то она нам не нужна выходим
079     //
080     const char * prefix = "$GNGLL";
081     if (strncmp(str, prefix, strlen(prefix))) return false;


Евгений, разбираю по частям Ваш урок,

можете ответить на мой вопрос, если не трудно?

 

Я правильно понимаю, что заменив $GNGLL на $GNL, можно читать другую строку?

почему-то теперь в потоке нет строки начинающейся с $GNGLL

 

И как вставлять код на форум, что бы он был изначально свернут?

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Правильно, только Вам бы лучше знать что эти символы обозначают и искать правильные строку и в ней правильные данные. Описание протокола на русском есть вот здесь - там собственно весь формат описан

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Chichay пишет:

Координаты присутствуют:
5511.32245,N
06119.48690,E
 
 
 
Челябинск, курчатовский район? )))