Anonymous
или ошибка в архитектуре?
Matwey
Ну посмотрели на прототип и поняли, что на самом деле хотели другого. Или сделали бенчмарк какого-то алгоритма и поняли, что нужно быстрее. Мало ли причин...
Anonymous
просто если есть ТЗ, то можно ведь продумать архитектуру заранее
Matwey
Можно
Anonymous
и потом делать по этому плану
Диджитал
ТЗ не является стабильной штукой
Диджитал
только если ты не работаешь на отсталую гос.контору
Matwey
Только нужно понимать, что между ТЗ и программой есть некий зазор логический
Диджитал
но тогда лучше сменить место работы
Anonymous
а вы как делаете? начинаете писать и на ходу придумываете?
Крылатый
Оффтоп, бля)
Anonymous
Оффтоп, бля)
нет, мы про спп
Диджитал
сделайте чатик по управлению проектами тогда
Крылатый
Есть одна идея
Anonymous
ТЗ не является стабильной штукой
а вы как делаете? начинаете писать и на ходу придумываете?
Крылатый
Короче
Крылатый
Общие программерские вопросы можно тут https://t.me/joinchat/AkxcTEMQENX1pfPjR0UhPA
Крылатый
Текущий ваш дискасс пододит под правила, но они ещё в разработке)
🐙 Antony
а вы как делаете? начинаете писать и на ходу придумываете?
над своими проектами: * читаю о теме несколько неделеь * набрасываю немного псевдокода, продумываю куда что идёт еще пару недель * фигачу, на ходу додумывая мелочи на не своими проектами: * зависит от конторы :)
Pavel
давайте придумаем канал где будем обсуждать какие каналы ещё сделать чтобы оффтопа вообще не было
Pavel
вот тогда заживем
Крылатый
Уже
Крылатый
Ну шмейк это онтоп тут)
Крылатый
Просто pro.programming может в себя встянуть supapro.cxx, я думаю...
Pavel
а если я хочу спросить мнения про архитектуру проекта у с++ программистов а не у веб-жс-фронтент-гуру-нинзя программистов?
Pavel
научились блин каналы делать
Крылатый
Не думаю, что js там у нас будут обитаться...
Pavel
больше каналов богу каналов
Крылатый
Ты сейчас Алекса призовёшь)
Крылатый
Не, смотри, в этом чате народ хочет обсуждать про плюсы и около с некоторым эпсилон и чтобы не теряться во фуде
Крылатый
Если pro.programming приживётся, будет ощ годно.
Крылатый
Не приживётся, ну и член с ним.)
Крылатый
флуде*
Крылатый
Вот только попробуй.
Matwey
по-моему сейчас будет реклама
Pavel
ктото усиленно обсуждал вопросы про с++ и тут внезапно вылез вопрос про архитектуру?
Крылатый
Для адекватной архитектуры нужен прототип)
Pavel
у меня один знакомый всегда говорил — программа пишется в два этапа. сначала пишешь, отлаживаешь, проверяшь. а потом всё стриаешь и пишешь заново
Pavel
помоему это с опытом приходит. чем больше опыта тем быстрее и проще продумывается основной скелет программы. где какие потоки чего читают, куда передают и т.п.
Pavel
а просто садиться и писать это раз 10 будешь переписывать потом
Matwey
А есть еще такое понятие как data-driven development...
Pavel
ну вот я и хочу спросить у тех, кто пользуется технологиями которые близки с++ программисту, а не просто программисту
Крылатый
Что значит "просто программисту"?
Крылатый
И чем просто программист оличается от С++ программиста?
Крылатый
Первый программирует на ЯП "Просто"?
Pavel
И чем просто программист оличается от С++ программиста?
чем тот канал будет отличатся от этого канала?
Pavel
а никто и не спрашивал про как конкретно. он же спросил про то какие подходы есть
Pavel
когда я сажусь чтонибудь писать я представляю хоть немного архитектуру. и я вполне осознаю, что лет 5 назад я не мог в той же степени её осознавать когда садился чтонибудь писать
Pavel
вот и всё. а вы мне можете рассказать про data-driven-development если хотите :)
Pavel
а если спрашивать подобное у "среднестатискстического программиста" я боюсь будет много нытья по поводу "ТЗ поменяли теперь вместо двух кнопок на форме у меня три кнопки, всё переделывать надо хнык хнык"
Pavel
ладно, ладно, шучу я
Крылатый
Это невполне верно.)
Pavel
а я и не претендую на абсолютную истину
Pavel
когда всё верно и разложено по полочкам (каналам), то так несколько скучно )
Berkus
тесты - это практически спецификация от заказчика как оно должно выглядеть и работать
ep
Подскажите, есть ли элегантное решение такой задачи: Есть класс: template <typename TPixel, unsigned int Dimension> class Calculator : public CalculatorBase<Image<TPixel, Dimension>> { // много всего void Calculate() override; }; Весь код выполняется в методе Calculate и для разных Dimension этот код различается. Мне нужно специализировать этот класс на Dimension == 2 и Dimension == 3. Как сделать это наиболее компактно?
ep
Всё одинаковое, все шаблонные кишки из CalculatorBase. Но вот расчёт для 3D должен использовать 2D. Поэтому для 2D и 3D должна быть разная реализация. И как это частично специализировать я пока не понимаю, кроме как дублировать всё остальное, типа: template <typename TPixel, unsigned int Dimension> class Calculator : public CalculatorBase<Image<TPixel, Dimension>> { }; template <typename TPixel> class Calculator<TPixel, 2U> : public CalculatorBase<Image<TPixel, 2U>> { // много всего void Calculate() override; }; template <typename TPixel> class Calculator<TPixel, 3U> : public CalculatorBase<Image<TPixel, 3U>> { // много всего void Calculate() override; }; И мне это совсем не нравится. Я не великий знаток шаблонной магии C++.
ep
Если выражаться по простому, надо специализировать только один метод по одному параметру, а всё остальное оставить как есть. Есть подозрение, что так нельзя.
Pavel
почему подозрение
Pavel
https://stackoverflow.com/questions/10284498/partial-specialization-of-a-method-in-a-templated-class
ep
Да, я читал.
ep
Короче, сейчас я сделал так (подробности опущены): template <...> class Base : public CalculatorBase<...> { // много всего }; template <...> class Calculator : public Base<...> { }; template <typename TPixel> class Calculator<TPixel, 2U> : public Base<TPixel, 2U> { // что-то ещё void Calculate() override; }; template <typename TPixel> class Calculator<TPixel, 3U> : public Base<TPixel, 3U> { // что-то ещё (дублирование кода) void Calculate() override; }; Что-то всё равно пришлось продублировать, но меньше.
ep
Это C++17?
Berkus
> (дублирование кода) вынеси его в base и не будет дублирования
ep
Не прокатит, проект должен собираться без поддержки фич из C++17.
ep
Насколько я видел, в конфигурации CMake прописан C++11. Также студия 2013
ep
Проект большой, у меня лишь малая часть всего кода есть.
Matwey
unsigned char *buf; int rv; buf = kmalloc(1, GFP_KERNEL); if (!buf) return -ENOMEM; Рубрика "ужосы нашего городка"
Pavel
вот ровно 1?
ep
> (дублирование кода) вынеси его в base и не будет дублирования
Всё что смог вынес, но там есть всякие специфичные макросы (их использование диктует используемая библиотека)
Matwey
Matwey
Тут недавно просто рассказывали, что Торвальдс плохого не напишет
Pavel
нууу. а с чего ты взял что в usb_control_msg можно передавать указатель на стек?
Vladislav
drivers/usb/serial/ftdi_sio.c
а что такого кошмарного? буфер там в urb юзается, со стека нельзя из-за dma, а дальше сразу фришится
Vladislav
можно конечно было заранее для таймера выделить, но why bother (c)