All streams
Search
Write a publication
Pull to refresh
13
0.7
Алексей Ткаченко @a-tk

Разработчик ПО

Send message
Если так хочется это разруливать в рантайме — дёргайте вручную LoadLibrary/GetProcAddress/dlopen/dlsym и Marshal.GetDelegateFromFunctionPointer вместо ваших тонн копипасты.

Копипаста появится в другом месте, и читабельности явно не добавится.
Осталось дождаться только, когда на них можно будет создавать полноценные UI для desktop-приложений.
А что насчёт short, например?
Из минусов статьи: есть проблема с 32/64-битным кодом. И в перспективе другими архитектурами.
На уроке математики:
— Учитель, мне в жизни пригодится всё, что Вы рассказываете?
— Нет, математика нужна только умным детям.
Чтобы полететь, надо доставить аппарат примерно за 40 дней в МИК (монтажно-испытательный комплекс). По крайней мере так на Байконуре, на Восточном могут быть несколько иные сроки. Но всё равно осталось 16 дней — мало.
for (a = 0, b= 0; a < N; ++a, ++b) — и тут запятая в двух местах — вполне легитимная
if (let x = Something(), x > 0) — ограничим область видимости подобно переменной для for

for (var e = document.getElementById('smth'; e; e = e.parentNode) — итерация вверх по дому
Ну да, до IDE она не дотягивает основательно.
Есть расширение для Visual Studio, зовётся Visual Micro — функционально то же самое, что и Arduino, но с автодополнением, множеством входных файлов, глобальными дефайнами, с которыми собираются библиотеки, и прочими прелестями, но на том же ардуиновском тулчейне.
Возможно. Но было описано то, что было сделано. Если описанный подход найдёт своего читателя — тоже будет хорошо.
Вообще я Arduino IDE не помню когда открывал последний раз. Мне больше по душе Visual Micro + VS. Но тут надо оговориться, что я такими делами занимаюсь исключительно для души.
Очень жаль. Там просто кладезь мыслей для красивых непонятных рисунков.
Ничего. Но тогда нет необходимости таскать за собой и указатель на функцию, если нет задачи сделать её виртуальной.
А продолжение с кватернионами будет?
Arduino IDE позволяет использовать синтаксис C++11, оказывается. То есть, там очень развитый объектно-ориентированный язык.

Совсем не так. Там полноценный С++, но из среды выполнения выпилили исключения и нет всяких STL, ибо на эмбеддед мало памяти и вообще динамическая аллокация — зло.
Надо будет набросать статейку про тюнинг ардуиновского тулчейна…
Я немного не о том.
Вызов метода предполагает передачу this. Указатель на функцию, которая не примет объекта в качестве параметра, нельзя считать вызовом метода, потому что она не имеет контекста (this).
Не совсем. Указатели — это виртуальные методы. Обычные — это просто функции с неявным this-аргументом, возможно, перегруженные. А ещё правила каста указателей при наследовании, и это важнее всего остального по сути.
Слишком много сущностей сразу становится.
А ведь ООП в частности и АТД в целом ведь совсем не об этом. Любые данные, как бы ни были они представлены, являются некоторой упрощённой моделью объектов реального мира, содержащие лишь значимые характеристики.
Если какая-то модель проектирования реализует обмен сообщениями, то он подходит для описания взаимодействий, моделируемых обменом сообщений. Если надо иерархия вида is-a, то моделируем наследованием. Если при хождении по иерархии надо изменчивость поведения — полиморфизм. Если надо защищать приватные данные или спрятать детали — инкапсуляция. Создание по шаблону — можно прототипы поюзать, если хотим заменить детали у конкретных сущностей без изменения общего поведения большинства — сделаем делегирование. И так далее и тому подобное.
No silver bullet.
А ошибки и дефекты, у каждого свои, куда записывать?

Information

Rating
1,809-th
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity

Specialization

Software Developer, Software Architect
Lead
From 1,000,000 $
C#
.NET
C++
Git