Очень полезная лекция. Внятно, без мычания, заикания. Всё последовательно и по делу. Спасибо
@islelectric31884 жыл бұрын
Спасибо за советы, очень полезные!!!
@colt25034 жыл бұрын
Виктор, предлагаю в следующем видео рассказать об оптимизации кода путем объявления типа переменных в зависимости от их реального размера. Другими словами если нужно определить логическую переменную STATE (состояние), то ее тип нужно указать как логический bool или целочисленный byte (оба этих типа ка не странно занимают в оперативной памяти МК по 1 байту) а не целочисленный int (2 байта) и тем более не как число с плавающей точкой типа float (4 байта). Так-же не лишним будет размещение строковых констант во флеш-памяти МК с целью значительной экономии оперативной памяти. Например при выводе текста в последовательный порт МК или на дисплей с помощью метода print("text") рекомендуется строковую константу "text" помещать во Flash память МК с помощью макроса F например вот так: Serial.print(F("text")). Так-же не лишним будет при выводе одиночного символа заключать его не в двойные кавычки как строковую константу, а в одинарные как символьную. Например: lcd.print('t'); А вообще лично мне очень нравится как пишет код Алекс Гайвер. Он очень грамотно использует директивы препроцессора для оперативного подключения/исключения частей одного и того-же кода перед его компиляцией в зависимости от имеющихся у пользователя условий. Например использование разных типов дисплеев (LCD1602 или LCD2004), часов реального (DS1302, DS1307, DS3231) и т.д. Вот тут у него это понятно расписано: alexgyver.ru/lessons/preprocessor/
@LabRazum4 жыл бұрын
Спасибо за комментарий! Да, тема очень полезная, включу в одно из своих видео.
@serg_tolstiy874 жыл бұрын
За 7-ой совет спасибо!
@pan_electric4 жыл бұрын
Это что за бред, кто или что поставил дислайк!?? Красава дорогой, лайк и комментарии. Подозреваю что мне надо поменять фамилию на "Мартин" ибо успех видимо в коде в этом.
@Vlad-tn7ki4 жыл бұрын
Всё правильно, спасибо!
@andrey_pav4 жыл бұрын
Спасибо за видео. А на пикабу не обращай внимания, публика там заметно изменилась.
@LabRazum4 жыл бұрын
Спасибо! Решил публиковать там чисто для подписчиков, рейтинг для минусов пока есть :)
@AlyxXander4 жыл бұрын
Теперь аудитория там - это кремлеботы
@daps95162 жыл бұрын
Виктор красава
@FrickUA2 жыл бұрын
Первый совет по делу, но он часто приводит к тому, что в макросы или глобальную область видимости переносят слишком много нарушая таким образом инкапсуляцию(тогда легко, поломать что то в програме случайно, поменял лед пин для какой то функции а оказалось что его 2 других использовало) Да и в принципе названия переменных заканчиваются, да и понять потом где именно этот лед_пин используется будет сложно. В данном случаи намного лучше сделать функцию blinkLed() а в ней определить переменную ледПин, тогда для замены пина достаточно будет изменить одну перемнную, то где она объявленя сразу покажет что используется она только здесь, а название функции будет дополнять название переменной.
@АнатолийСиницын-ц7й3 жыл бұрын
Где найти примеры многоуровневых меню для 1602 шилда? Везде одно кнопкодавство под мигаца диодой.
@АндрейХлыновскийАй бұрын
Сайт ЛабРазум как-то не сильно корректно работает. А на Степике ваши курсы купить нельзя?
@ВасисуалийПриветствует4 жыл бұрын
Благодарю. А нельзя ли ссылки на упомянутые книги? И ещё очень хотелось бы, как начинающему, иметь какую то базу готовых (по крайней мере, часто употребляемых) названий функций и переменных, ведь не только у меня, думается, проблемы с английским правописанием и смыслопередачей... Как было бы здорово: выбрал название (у которого есть понятное русское объяснение и, возможно, пример употребления), скопировал, вставил в код... Думаю, было бы намного проще. Может где то такое уже реализовано?
@olexangrstetsiuk30924 жыл бұрын
Так что же такое - система контроля версий? А еще пользуясь вкладками в которых помещается универсальная часть кода, который можно использовать в иных проектах, хорошо бы глобальные переменные объявлять прямо во вкладке дописав static ( к примеру : static uint8_t) , и после достаточно скопировать полностью весь код из вкладки и вставить в новый проект, ничего дополнительного выискивать в объявлениях уже и не прийдётся.
@vrakitine7 ай бұрын
В Софтверной Инженерии, кроме парадигм и методологий программирования, я бы выделил еще и Миры ... В контексте софтверной инженерии, я со студентами обсуждаю интересный вопрос - а что первично Дырка или Тело бублика (алгоритм или код) Дырка порождает бублик или Тело бублика создаёт Дырку или Дырка уже до Тела бублика существовала? После чего мы переходим в обсуждению двух Миров софтверной инженерии: Алгоритмо-центричного и Кодо-центричного, по аналогии с нашим представлением, что вокруг чего вращается Солнце вокруг Земли или наоборот, Земля вращается вокруг Солнца. Очень интересно получается послушать их рассуждения на эту тему ) В v-agent oriented programming (VAOP) и в Автоматном Программировании и в model-driven engineering Алгоритмо-центричный мир и мы поддерживаем его своими методологиями, а для очень многих Солнце продолжает вращаться вокруг Земли и нет других вариантов) Вот, например, почитайте, что пишут представители кодо-центричного софтверного мира: "код и есть алгоритм. код реализует алгоритм. потому код документирует алгоритм автоматически." Вот такие ярые Кодо-центристы Джордано Бруно и сожгли )), за то, что тот сказал, что Земля не Центр Мироздания, а Алгоритм )) Лучше начать знакомство с VAOP с этой статьи на Medium: "Bagels and Muffins of Programming or How Easy It Is to Convert a Bagel into a Black Hole" или на Хабре: "Бублики и Коржики Программирования".
@arduinoprojekts00774 жыл бұрын
Здравствуйте вы по видео видно как хорошо разбираетесь, Прощу вас написать скечь или код я не знаю как называется правильно, чтобы через андроид управлять детским электромобилем, есть собранная схема то есть 4 полевика 2шт 3205 и 2шт 4905 с ними я сделал реверс но плавносьти нету потому что на затвор идет сразу большое напряжение а должно постепенно идти 3v начатся и до 12v не могу плавность сделать единственное что надо чтобы машинка набирала скорость плавно секунд 2-3 и астановилось тоже плавно секунд 1-1.5. ...И управление руля присутствовала плавность не нужна конечно рулю. Не игнорируйте меня пожалуйста. Вы наверное можете сказать учись сам прочитай книги, мне нужно поломанную машинку сделать для детей лето ведъ началось, и когда я научусь читать и писать программы дети уже подрастут, это первая причина, вторая я по себе знаю уже старался я не смогу его изучить в голову не лезет ни как ни пойму это вторая проблема, а для вас как я вижу по видео 5-7 минутная наверно работа и вы дадите малышам счастье тем чем наградил вас Бог а мне ардуино понадобился одинь раз в жизни и помоему больше не понадобится, из за этого наверное не стоит изучать достаточно попросить кто может это сделать. Я прощу напишите и скинце мне на почту shuha34567jw@gmail.com У меня есть ардуино uno купил и модуль блютуз HC05. Спасибо за ранее надеюсь поймете и поможете спасибо.
@Agritreid4 жыл бұрын
Это вам нужно скетч обычного ШИМ регулятора , у алекса Gаyver на канале есть то что вам нужно, вот нашол kzbin.info/www/bejne/qHTQkoCJiZ2kock
@arduinoprojekts00774 жыл бұрын
@@Agritreid Спасибо посмотрел начал догонять помогли успехов вам
@Vladislav55rus4 жыл бұрын
Что такое контроль версий и как этим пользоваться?
@VitaliyZlobin2 жыл бұрын
Ещё, наравне с этими книгами, рекомендуется "Стив Макконнелл - Совершенный код"
@nazarolshevskii54824 жыл бұрын
Еще есть книга с красочным названием "Программирования без дураков" Катрин Пассиг, Йоханнес Яндер. Но слишком на этом не стоит зацикливаться, как по мне. Одну прочел, структурировал свод правил для себя в блокнотик (есть готовый тута- shwanoff.ru/principles-of-development/ ) и перед сном каждый день прочитывать после или перед молитвой))). Кроме того хорошим тоном считается соблюдать длину рядков и формат и количество отступов( к примеру для Python это дело очень строго описано в PEP8, возможно и для C есть такое. Во всяком случае для того, чтобы вашим кодом можно было хотя бы поделится с другими - нужно отнестись к этому серьезно. Я не говорю уже о работе в команде с множеством программистов, которые за не читаемый код будут плевать вам в спину)
@Subaru-Club4 жыл бұрын
Грамотно, по полочкам разложил, спасибо, но есть люди которые как я касаются того же кода раз в год и нужно было в ролике упомянуть о комментариях. Вот собирал я инкубатор, не программист я и ардуинку очень редко беру в руки, от кривого, с моими руками из жопы кода спасают лишь комментарии)))
@rikenbaker110 ай бұрын
Спасибо!
@місю4 жыл бұрын
Спасибо за видео, правда не смог найти 5-го совета - за четвертым сразу следует 6-й.
@АндрейЛенин-п2у3 жыл бұрын
он был закомментирован и скрыт для компиляции в видио😂
@zero_zet4 жыл бұрын
Всё по делу...
@FrickUA2 жыл бұрын
10 совет, "гит, гитхаб" гит это собственно система контроля версий, а гитхаб это ресурс/хостинг который предоставляет функционал гита только еще и как веб сервис. Странно видеть их "через запятую". Тогда уже либо git, svn либо github, gitlab:) Создаете файлик потом еще один, это не удобно..... Так и не понял в чем смысл vcs. Основные цели хронологически разбить свой код на разные задачи которые добавляются постепенно, сохраняя историю изменений, серьезные ide подсвечивают тот код который изменился именно сейчас что упрощает работу, собственно сохранить код где то в облаке, и делится им с остальными, и позволять болбшому кол-ву людей изменять код одновременно, создавая общий "продукт"
@Витальянец-и5т3 жыл бұрын
Ардуинщики, вопрос? К примеру, мы объявили с 1 по 10 пины как выход. Создаем цикл для переключения пинов for (int Pin = 1; Pin
@silentage63102 жыл бұрын
правильнее, целых 3 байта сэкономишь, ничего не потеряв.
@Витальянец-и5т2 жыл бұрын
@@silentage6310 Спасибо! Я не специалист. Просто посматривая коды обратил внимание... Многие блогеры твердят, что переменные нужно правильно использовать, для экономии памяти. Но, сами в большинстве подобных случаев, в коде используют int. Если по условию, мы не превышаем от 0 - 255, должно быть byte. Потому я и уточнил. Ещё раз спасибо!
@eclipse9925 Жыл бұрын
Скотт Мейерс говорит вместо #define лучше использовать const
@daps9516 Жыл бұрын
Первое видео
@arduinoprojekts00774 жыл бұрын
с меня лайк и подписька
@АндрейЛукьянов-с3р4 жыл бұрын
А ты можеш написать код ко всем домофонам
@АндрейВласов-п2п4 жыл бұрын
Комментарии нужны.
@LabRazum4 жыл бұрын
Безусловно, но всего должно быть в меру. Излишние комментарии только портят код и его дальнейшее обслуживание.
@clear-eyed-epiphany4 жыл бұрын
@@LabRazum вы на практике с таким сталкивались? Я не острю мне правда интересно. Из своего опыта заметил, что чаще неудобство возникает из-за отсутствия комментариев нежели устаревании его. Единственное комментарии нужно писать так, чтобы в комментарии было то чего нет в коде. Нужно хорошо понимать простую но не очевидную вещь - то что очевидно тебе далеко не означает, что это очевидно всем. Особенно, если комментарии разрешено писать на русском, то брезговать ими не стоит.
@Memshhe243 жыл бұрын
Создай программу для программистов на телефонах
@ololololo-l5z4 жыл бұрын
Как нормальные люди создают переменные:"надо придумать имя"; как переменные создаю я:"закрыть глаза три раза покрутиться нашупать клаву три раза стукнуть eqe это кордината "y" у птицы на экране spfd5408 в игре флеппи бирд для ардуино надо не забыть иду спать завтра не могу понять ничего что понаписал";НЕ ШУТКА.
@LabRazum4 жыл бұрын
Как, по-вашему, еще можно улучшить свой код? Делитесь в комментариях и не забывайте подписываться на канал! Основные моменты в этом видео: 0:10 1. Пиши код для человека 1:00 2. Делай код гибким 3:33 3. Именуй правильно 4:46 4. Придерживайся стандартов 6:02 6. Одна функция = одна задача 6:42 7. Не повторяйся! Пиши функции 7:42 8. Написал? Перечитай! 8:17 9. Постоянно самообучайся 9:11 10. Используй системы контроля версий 5-й раздел касался комментирования программ - об этом поговорим немного позже :)
@ttlttl77494 жыл бұрын
Хотелось бы узнать как правильно разделять код по файлам? Например разделить проект на 5 файлов .ini или .cpp
@FrickUA2 жыл бұрын
Совет 7, пример не очень. Для этого примера нужен цикл, хоть с функцией хоть без:) Ну и в своем же примере нарушили свой же совет про пин 13 и название переменных/макросов)) Ну и название функции, blinkLed подразумевает что мигать будет светодиод, а не любой переданый пин.
@Евгений-ф7д4п2 жыл бұрын
Не понятно как зарегистрироваться в разуме
@amurlamur31254 жыл бұрын
☸☸☸☸
@MegaFallout134 жыл бұрын
На счет пункта 6 категорически не согласен. Остальное норм.
@LabRazum4 жыл бұрын
Если писать коммент под каждой строчкой - зайдет другой человек, в попыхах исправляя баг заменит одну из строк, естественно, забив на изменение комментария, а вы потом полдня ищете почему это не работает, ведь в комментарии одно, а на практике - другое. Пояснять комментарием нужно только особо важные части кода или не стандартные приемы-велосипеды.
@MegaFallout134 жыл бұрын
@@LabRazum Каждую строчку и необязательно комментировать. Бывает обращаешься к коду который сам написал несколько назад и очень недоволен собой если не оставил достаточного количества комментов - отнимается драгоценное время на погружение, особенно если есть вставки на низкоуровневом языке.
@clear-eyed-epiphany4 жыл бұрын
Не понял. 6 пункт это одна функция одна ответственность. Причем тут комментарии? Согласен с автором. Применяя принцип единственной ответственности, "чистые" функции и декларативный стиль как раз приводит к тому о чем упрощённо сказал автор.
@sonar_devices2 жыл бұрын
Перестаньте делать ужасные ролики. Фоновая музыка просто жесть. Так получилось, что смотрел ролики не на ноуте, а на большом телевизоре с хорошей внешней акустикой. Напрягает пипец фоновая музыка. Жена из соседней комнаты пришла и попросила переключить ролик.
@wandemeir43944 жыл бұрын
Код стайл, это не стандарт языка + в ардуино есть автоформатирование, пишите как хотите, потом делайте автоформотирование и все станет круто.
@wandemeir43944 жыл бұрын
@@zhuk462 Как насчет аргументов? или у сеньеров ардуино это не принято? А вообще гуглим "c++ code style" сморим кто это написал и зачем. А по второму вопросу открываем arduino IDE, нажимаем правую кнопку мыши и выбираем "АвтоФормотирование", далее произойдет магия.
@wandemeir43944 жыл бұрын
@@zhuk462 Да, не хочу вас расстраивать, но то что вы не используете ардино ide не делает вас тру кодером. Давайте попытаюсь совсем просто обьяснить, откройте свою трукодерскую ide и посмотрите на настройки автоформатирования. Какие там будет варианты? Я понимаю, найти эту настройку сложно, так что сделаю за вас (CUBEIDE все параметры дефолтные) Там будут варианты K&R, BSD, GNU... И это не название стандартов, это соглашения используемые для форматирования кода в этих областях/проектах. Вы наверное не очень понимаете концепцию аргументов, поэтому тут тоже вам помогу, аргументом против будет название стандарта С/C++ где описан код стайл. Ардуино IDE неплохо подходит для решения некоторой группы задач, Например прототипирование. Есть задачи которые просто быстрее реализовать таким способом. Вообщем не только для начинающих. А вообще речь шла не о том, для начинающих или нет, а о том что не плохо было бы понимать что и зачем ты делаешь не зависимо от IDE.
@wandemeir43944 жыл бұрын
@@zhuk462 Тогда очень странно, что вам не известно что такое code style. Arduino хороша тогда, когда вам например притаскивают корпус конструктора, а в нем куча моторов энкодеров и прочих сенсоров, и вам нужно быстро дать фидбек по поводу работоспособности сборки. Берете макетку, ардуино и тестите все модули по очереди. Быстро и просто. Или Когда к вам пришол новый сенсор, нужно посмотреть что да как. Подрубаем к ардуино и смотрим в плоттер. Удобно и быстро.
@wandemeir43944 жыл бұрын
@@zhuk462 Ну наконец - то у профи заполыхало. Я уж начал думать, что зря это пишу. Я понял что вы все знаете, просто мне как аргумент не говорите, чтобы я подумал что вы просто ардуинщик, но на самом деле вы сеньер. Постмирония. Понял. Можно поинтересоватся, как вы выстрадали, то что нужно писать в профиссиональных средах? Какие среды профессиональные? те в которых код стайл выбирать не нужно? И какие конкретно фичи этих сред так сильно позволяют вам ускорить вашу разработку?
@wandemeir43944 жыл бұрын
@@zhuk462 Удачи вам со своением кейла, или что вы там считаете тру ide. Истина лиш в том что ide это удел ардуинщиков. Нормальные люди делают свои системы сборки. Там make, cmake, gcc. Думаю вам не известно что это такое, ведь этих слов не встретишь пока ищищ заветную кнопку билд, в тру ide.
@stranger271271 Жыл бұрын
Советы человека который пишет код не для компа а для человека. Испанский стыд
@IshuckShow11 ай бұрын
Тоже с этого кринжанул)
@allmight840710 ай бұрын
Сразу видно челиков с галер, которые не занимались поддержкой