Не скажите :) Помню, у нас на ДВК-2 была консольная динамическая игра Road. Границы трассы выводились символами "/", "|" и "\", препятствия "солнышком", машина управлялась стрелками. Программировать пошаговые игрушки не менее интересно.
Возможно, но они будут отвлекаться на SDL, который тоже по сути предметный язык. Не уверен, что нужно добавлять сложности стороннего фреймворка, если сложность самого языка и стандартной библиотеки и так уже запредельная.
Слово "плохо" я не говорил :) Подход интересный и по сути своей "обучать играя" правильный. Я бы, наверное, построил курс на создании простой консольной игры с использованием только возможностей стандартной библиотеки с выгрузкой/загрузкой состояния в файл. Студентам, как минимум, пришлось бы изучить все основные структурные блоки (if, for, while, switch), создать свои классы, использовать iostream, концепт << и базовые контейнеры типа списка, массива или даже словаря.
Для демонстрации возможностей фреймворка SDL, наверное, круто. Для внедрения в мозг студента базовых возможностей С++, стандартной библиотеки и структурирования программ на С++, по-моему, не очень. Извините, только частное мнение ведущего курс "SQL/noSQL СУБД за 30 часов" и практикующего разработчика на С++.
"У нас" - это в конторе, которая делает софт на Дельфи 7 в 2021 году или я неверно понял? Тогда вопрос, скорее, к конторе, почему не используются последние версии 10.х и 11 (вышла несколько недель назад).
Подход понятен, но возникает вопрос о накладных расходах. В чистом Си в embedded, например, используют предвычисленные таблицы вместо операций целочисленного деления на некратное 2^N, достигая лучшего быстродействия за счет увеличения размера скомпилированного модуля.
Совершенно верно, в комиссонке импортный калькулятор не лежал на прилавке, а продавался "по блату", т.е. как сейчас принято говорить, "людям, обладающим социальным капиталом". Речь идет о крупных городах. У меня сохранился простейший кальк Sanyo CX-8138AN, купленный родственниками в районе 1980 года, цену уже никто не помнит, но больше 100 рублей и меньше 200. До сих пор работает от двух батареек АА.
Это вы про несовместимость PHP 5.x и 7? Или про яваскрипт-фреймворки, меняющиеся раз в полгода и поэтому по статистике не обновляющиеся на 85% сайтов? Или про отваливающиеся каждый раз плагины в Thunderbird после обновления программы? Может быть Ява поддерживается бесплатно для предыдущих версий фреймворка? А как с качеством документации, есть что-то отдаленно похожее на MSDN?
Поддерживать обратную совместимость, предыдущие версии и документацию - дорогое занятие, за пределами спонсируемого корпорациями ядра линукс такое мало кто может себе позволить. Более того, багфиксы в опенсурсе поддерживаются по принципу "скачай новую версию, она же бесплатная".
Новому айфону соответствовал, скорее, привезенный из загранки или купленный в коммиссионке простой японский калькулятор. А 250 рублей - цена ч/б телевизора.
Заглянул в список доступного софта на простом хостинге. Вот что можно развернуть на сайте из раздела ERP :) Разумеется, без поддержки, настройки, доработки все эти изделия клиенту не нужны и даром.
Разве доминированию Windows на десктопах что-то угрожает, чтобы по этой причине Microsoft интегрировала Linux? Причем интегрировала в качестве "Linux-песочницы", а не наоборот, как предрекают евангелисты. И почему именно пример VSCode так важен для этой интеграции? Разве Exchange, а не развитая инфраструктура управления сетями предприятий Active Directory, держит на плаву сервера Windows? Разве тот же гугл-докс можно считать а) альтернативой и б) свободной для MS Office? Разве Edge, использующий движок от Chrome, можно считать "браузером от Microsoft"? Разве опыт мюнхенского "перехода" на линукс и отката обратно ничему не учит других? Разве экономия на лицензиях не может многократно перекрываться расходами на поддержку в т.ч. собственных дистрибутивов вроде "линукс ФСИН" или "линукс французской жандармерии"?
Ситуация вовсе не такая однозначная, как может представляться при поверхностном чтении. Microsoft раньше выигрывала на том, что предлагала разработчиками лучшие инструменты, платформы, SDK, чем конкуренты. Посмотрим, что выйдет сейчас.
Нечеткие цели и требования. Если есть такие задачи, то их отправляем на проработку и исключаем из Backlog. После детальной проработки задача может быть снова помещена в Backlog.
В одной фразе масса неувязок:
постановка задачи выносится за рамки процесса разработки.
и тем самым отрывается от ограничений реализации
где-то там, вне процесса есть супермозг, способный ставить задачи
проработка задачи при разработке "снизу-вверх" хорошо если не наполовину связана с увязыванием других задач в некий общий фреймворк
потому что не только код должен рефакториться, но и фугкциональная архитектура
Многое встает на места, если представлять облако, как глобальный логический "мейнфрейм". У мейнфремов по объективным причинам исторически не сложилось с отвязкой софта от платформы, поэтому до сих пор 50 млрд. финансовых транзакций в день обрабатывается на иерархической СУБД 1968 года выпуска на "железе" того же производителя. Несмотря на круг децентрализации, переходов на открытые системы и клиент-сервер. Пока глобальных "мейнфреймов" несколько, они старательно делят рынок, огораживая своих клиентов, посмотрим, во что это выльется.
Автору благодарность за понимание, переводчику — за труд. «Масала» на русский, видимо, лучше переводить как «солянка» или «винегрет». Для тех, кто как и я пользовался «до UML-ными» SADT/IDEF, ситуация выглядит неважно.
Подкину по теме "Несеребряные пули или кратко про методы софтостроения"
Предметная область (Domain) – это то, что делает организация, и среда, в которой она это делает.
Это шутка, я надеюсь?
Даже в небольшом производственном предприятии имеются минимум несколько «предметных областей» (снабжение, сбыт, производство, финансы, кадры, менеджмент), оказывающихся, даже при поверхностном рассмотрении, контекстами и областями знаний/деятельности. Предметная область — это бухгалтерский учет, логистика или металлообработка. Программирование, кстати, тоже.
В реализацию квадрата и теста закралась маленькая неточность, которая создает иллюзию «опровержения принципа» и хрупкости механизма наследования реализации.
Итак, квадрат — это прямугольник, у которого стороны равны, тем не менее, код квадрата:
а/ вместо выдачи ошибки почему-то позволяет задавать разные длины сторон и
б/ тайно «под капотом» их меняет, т.е. set несимметричен с get
Тест на непонятных основаниях считает, что:
а/ у прямоугольника set-ы детерминированы (не меняют состояние других элементов) и
б/ не отлавливает ошибку задания длины
А если задать нулевую или отрицательную? А если завтра наледником будет не просто Square, а Square4x4?
Мораль: функция, принимающая наследников базового класса, должна следовать контракту базового класса, а не придумывать свой.
Не скажите :) Помню, у нас на ДВК-2 была консольная динамическая игра Road. Границы трассы выводились символами "/", "|" и "\", препятствия "солнышком", машина управлялась стрелками. Программировать пошаговые игрушки не менее интересно.
Возможно, но они будут отвлекаться на SDL, который тоже по сути предметный язык. Не уверен, что нужно добавлять сложности стороннего фреймворка, если сложность самого языка и стандартной библиотеки и так уже запредельная.
Слово "плохо" я не говорил :) Подход интересный и по сути своей "обучать играя" правильный. Я бы, наверное, построил курс на создании простой консольной игры с использованием только возможностей стандартной библиотеки с выгрузкой/загрузкой состояния в файл. Студентам, как минимум, пришлось бы изучить все основные структурные блоки (if, for, while, switch), создать свои классы, использовать iostream, концепт << и базовые контейнеры типа списка, массива или даже словаря.
Для демонстрации возможностей фреймворка SDL, наверное, круто. Для внедрения в мозг студента базовых возможностей С++, стандартной библиотеки и структурирования программ на С++, по-моему, не очень. Извините, только частное мнение ведущего курс "SQL/noSQL СУБД за 30 часов" и практикующего разработчика на С++.
"У нас" - это в конторе, которая делает софт на Дельфи 7 в 2021 году или я неверно понял? Тогда вопрос, скорее, к конторе, почему не используются последние версии 10.х и 11 (вышла несколько недель назад).
Если неважно, что пойдет в эксплуатацию, то можно и так и даже круче с использованием одного m4.
"Ирония - дочь бессилия" (с)
Подход понятен, но возникает вопрос о накладных расходах. В чистом Си в embedded, например, используют предвычисленные таблицы вместо операций целочисленного деления на некратное 2^N, достигая лучшего быстродействия за счет увеличения размера скомпилированного модуля.
Совершенно верно, в комиссонке импортный калькулятор не лежал на прилавке, а продавался "по блату", т.е. как сейчас принято говорить, "людям, обладающим социальным капиталом". Речь идет о крупных городах. У меня сохранился простейший кальк Sanyo CX-8138AN, купленный родственниками в районе 1980 года, цену уже никто не помнит, но больше 100 рублей и меньше 200. До сих пор работает от двух батареек АА.
Это вы про несовместимость PHP 5.x и 7? Или про яваскрипт-фреймворки, меняющиеся раз в полгода и поэтому по статистике не обновляющиеся на 85% сайтов? Или про отваливающиеся каждый раз плагины в Thunderbird после обновления программы? Может быть Ява поддерживается бесплатно для предыдущих версий фреймворка? А как с качеством документации, есть что-то отдаленно похожее на MSDN?
Поддерживать обратную совместимость, предыдущие версии и документацию - дорогое занятие, за пределами спонсируемого корпорациями ядра линукс такое мало кто может себе позволить. Более того, багфиксы в опенсурсе поддерживаются по принципу "скачай новую версию, она же бесплатная".
Новому айфону соответствовал, скорее, привезенный из загранки или купленный в коммиссионке простой японский калькулятор. А 250 рублей - цена ч/б телевизора.
Заглянул в список доступного софта на простом хостинге. Вот что можно развернуть на сайте из раздела ERP :) Разумеется, без поддержки, настройки, доработки все эти изделия клиенту не нужны и даром.
Разве доминированию Windows на десктопах что-то угрожает, чтобы по этой причине Microsoft интегрировала Linux? Причем интегрировала в качестве "Linux-песочницы", а не наоборот, как предрекают евангелисты. И почему именно пример VSCode так важен для этой интеграции? Разве Exchange, а не развитая инфраструктура управления сетями предприятий Active Directory, держит на плаву сервера Windows? Разве тот же гугл-докс можно считать а) альтернативой и б) свободной для MS Office? Разве Edge, использующий движок от Chrome, можно считать "браузером от Microsoft"? Разве опыт мюнхенского "перехода" на линукс и отката обратно ничему не учит других? Разве экономия на лицензиях не может многократно перекрываться расходами на поддержку в т.ч. собственных дистрибутивов вроде "линукс ФСИН" или "линукс французской жандармерии"?
Ситуация вовсе не такая однозначная, как может представляться при поверхностном чтении. Microsoft раньше выигрывала на том, что предлагала разработчиками лучшие инструменты, платформы, SDK, чем конкуренты. Посмотрим, что выйдет сейчас.
В одной фразе масса неувязок:
постановка задачи выносится за рамки процесса разработки.
и тем самым отрывается от ограничений реализации
где-то там, вне процесса есть супермозг, способный ставить задачи
проработка задачи при разработке "снизу-вверх" хорошо если не наполовину связана с увязыванием других задач в некий общий фреймворк
потому что не только код должен рефакториться, но и фугкциональная архитектура
Вспомнилось, как разные WYSIWYG для верстки HTML типа Dreamweaver или FrontPage "лёгким движением руки" разворачивали сайт на серверах.
Многое встает на места, если представлять облако, как глобальный логический "мейнфрейм". У мейнфремов по объективным причинам исторически не сложилось с отвязкой софта от платформы, поэтому до сих пор 50 млрд. финансовых транзакций в день обрабатывается на иерархической СУБД 1968 года выпуска на "железе" того же производителя. Несмотря на круг децентрализации, переходов на открытые системы и клиент-сервер. Пока глобальных "мейнфреймов" несколько, они старательно делят рынок, огораживая своих клиентов, посмотрим, во что это выльется.
Не совсем ясно, создание стены из кусочков - это microservices to monolith?
Подкину по теме "Несеребряные пули или кратко про методы софтостроения"
Это шутка, я надеюсь?
Даже в небольшом производственном предприятии имеются минимум несколько «предметных областей» (снабжение, сбыт, производство, финансы, кадры, менеджмент), оказывающихся, даже при поверхностном рассмотрении, контекстами и областями знаний/деятельности. Предметная область — это бухгалтерский учет, логистика или металлообработка. Программирование, кстати, тоже.
Итак, квадрат — это прямугольник, у которого стороны равны, тем не менее, код квадрата:
а/ вместо выдачи ошибки почему-то позволяет задавать разные длины сторон и
б/ тайно «под капотом» их меняет, т.е. set несимметричен с get
Тест на непонятных основаниях считает, что:
а/ у прямоугольника set-ы детерминированы (не меняют состояние других элементов) и
б/ не отлавливает ошибку задания длины
А если задать нулевую или отрицательную? А если завтра наледником будет не просто Square, а Square4x4?
Мораль: функция, принимающая наследников базового класса, должна следовать контракту базового класса, а не придумывать свой.