@ProCxx

Страница 1259 из 2477
Pavel
30.08.2017
09:19:14
вот тогда заживем

Дед Пегас
30.08.2017
09:19:34
Уже

Google
Дед Пегас
30.08.2017
09:20:15
Ну шмейк это онтоп тут)

Просто pro.programming может в себя встянуть supapro.cxx, я думаю...

Pavel
30.08.2017
09:22:10
а если я хочу спросить мнения про архитектуру проекта у с++ программистов а не у веб-жс-фронтент-гуру-нинзя программистов?

научились блин каналы делать

Дед Пегас
30.08.2017
09:22:33
Не думаю, что js там у нас будут обитаться...

Pavel
30.08.2017
09:22:40
больше каналов богу каналов

Дед Пегас
30.08.2017
09:22:48
Ты сейчас Алекса призовёшь)

Не, смотри, в этом чате народ хочет обсуждать про плюсы и около с некоторым эпсилон и чтобы не теряться во фуде

Если pro.programming приживётся, будет ощ годно.

Не приживётся, ну и член с ним.)

флуде*

Вот только попробуй.

Matwey
30.08.2017
09:24:39
по-моему сейчас будет реклама

Google
Pavel
30.08.2017
09:25:25
ктото усиленно обсуждал вопросы про с++ и тут внезапно вылез вопрос про архитектуру?

Ilia
30.08.2017
09:27:28
просто если есть ТЗ, то можно ведь продумать архитектуру заранее
Даже с ТЗ можно придумать архитектуру неверно. Например, когда в ТЗ всё правильно написано, но ты (т.е. архитектор) не знает какие-то технические детали реализации, средств, которые будут использоваться и т.п. В результате может появится неверная архитектура.

Дед Пегас
30.08.2017
09:27:46
Для адекватной архитектуры нужен прототип)

Pavel
30.08.2017
09:28:42
у меня один знакомый всегда говорил — программа пишется в два этапа. сначала пишешь, отлаживаешь, проверяшь. а потом всё стриаешь и пишешь заново

Ilia
30.08.2017
09:28:54
Даже с ТЗ можно придумать архитектуру неверно. Например, когда в ТЗ всё правильно написано, но ты (т.е. архитектор) не знает какие-то технические детали реализации, средств, которые будут использоваться и т.п. В результате может появится неверная архитектура.
Например, простая задача, есть сервер, пользователю надо дать выбрать файл и скачать его. Ну, как бы список файлов, нажал — получил скаченное. Вроде всё просто и ясно. Далее выясняется, что это - HTTP сервер. Ну и всё, всё надо переделывать ?

а вы как делаете? начинаете писать и на ходу придумываете?
По-разному . Разные задачи требуют разного подхода. Универсального нет.

Pavel
30.08.2017
09:31:04
помоему это с опытом приходит. чем больше опыта тем быстрее и проще продумывается основной скелет программы. где какие потоки чего читают, куда передают и т.п.

а просто садиться и писать это раз 10 будешь переписывать потом

Matwey
30.08.2017
09:32:12
А есть еще такое понятие как data-driven development...

Pavel
30.08.2017
09:33:47
Не от языка программирования это зависит, а от технологий.
ну вот я и хочу спросить у тех, кто пользуется технологиями которые близки с++ программисту, а не просто программисту

Дед Пегас
30.08.2017
09:34:12
Что значит "просто программисту"?

Ilia
30.08.2017
09:34:13
С++ программисту все технологии близки.

Дед Пегас
30.08.2017
09:34:23
И чем просто программист оличается от С++ программиста?

Первый программирует на ЯП "Просто"?

Pavel
30.08.2017
09:34:42
И чем просто программист оличается от С++ программиста?
чем тот канал будет отличатся от этого канала?

Ilia
30.08.2017
09:34:48
Может быт это QT-программа мобильная игра, а может быть это — краулер сайтов. Оба на С++. Наверное, есть разница, как это проектировать

Pavel
30.08.2017
09:35:37
а никто и не спрашивал про как конкретно. он же спросил про то какие подходы есть

когда я сажусь чтонибудь писать я представляю хоть немного архитектуру. и я вполне осознаю, что лет 5 назад я не мог в той же степени её осознавать когда садился чтонибудь писать

Google
Pavel
30.08.2017
09:36:40
вот и всё. а вы мне можете рассказать про data-driven-development если хотите :)

а если спрашивать подобное у "среднестатискстического программиста" я боюсь будет много нытья по поводу "ТЗ поменяли теперь вместо двух кнопок на форме у меня три кнопки, всё переделывать надо хнык хнык"

ладно, ладно, шучу я

Дед Пегас
30.08.2017
09:38:39
Это невполне верно.)

Pavel
30.08.2017
09:39:02
а я и не претендую на абсолютную истину

когда всё верно и разложено по полочкам (каналам), то так несколько скучно )

Berkus
30.08.2017
09:53:46
тесты - это практически спецификация от заказчика как оно должно выглядеть и работать

Eugene
30.08.2017
11:02:10
Подскажите, есть ли элегантное решение такой задачи: Есть класс: template <typename TPixel, unsigned int Dimension> class Calculator : public CalculatorBase<Image<TPixel, Dimension>> { // много всего void Calculate() override; }; Весь код выполняется в методе Calculate и для разных Dimension этот код различается. Мне нужно специализировать этот класс на Dimension == 2 и Dimension == 3. Как сделать это наиболее компактно?

Ilia
30.08.2017
11:04:12
#Gof:Visitor ?

Ну или чёрная шаблонная магия...

Надо смотреть, что у тебя будет одинаковое, а что разное в зависимости от Dimension

Eugene
30.08.2017
11:12:01
Всё одинаковое, все шаблонные кишки из 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++.

Если выражаться по простому, надо специализировать только один метод по одному параметру, а всё остальное оставить как есть. Есть подозрение, что так нельзя.

Pavel
30.08.2017
11:34:49
почему подозрение

https://stackoverflow.com/questions/10284498/partial-specialization-of-a-method-in-a-templated-class

Eugene
30.08.2017
11:36:29
Да, я читал.

Короче, сейчас я сделал так (подробности опущены): 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; }; Что-то всё равно пришлось продублировать, но меньше.

Eugene
30.08.2017
11:44:30
Это C++17?

Google
Evgeniy
30.08.2017
11:44:58
Berkus
30.08.2017
11:45:03
> (дублирование кода) вынеси его в base и не будет дублирования

Alexander
30.08.2017
11:45:04
Это C++17?
так точно

Eugene
30.08.2017
11:45:46
Не прокатит, проект должен собираться без поддержки фич из C++17.

Eugene
30.08.2017
11:47:26
Насколько я видел, в конфигурации CMake прописан C++11. Также студия 2013

Проект большой, у меня лишь малая часть всего кода есть.

Matwey
30.08.2017
12:00:25
unsigned char *buf; int rv; buf = kmalloc(1, GFP_KERNEL); if (!buf) return -ENOMEM; Рубрика "ужосы нашего городка"

Admin
ERROR: S client not available

Pavel
30.08.2017
12:01:06
вот ровно 1?

Eugene
30.08.2017
12:01:41
> (дублирование кода) вынеси его в base и не будет дублирования
Всё что смог вынес, но там есть всякие специфичные макросы (их использование диктует используемая библиотека)

Matwey
30.08.2017
12:01:55
Vladislav
30.08.2017
12:02:06
Matwey
30.08.2017
12:02:28
Тут недавно просто рассказывали, что Торвальдс плохого не напишет

Pavel
30.08.2017
12:04:14
нууу. а с чего ты взял что в usb_control_msg можно передавать указатель на стек?

Vladislav
30.08.2017
12:04:18
drivers/usb/serial/ftdi_sio.c
а что такого кошмарного? буфер там в urb юзается, со стека нельзя из-за dma, а дальше сразу фришится

можно конечно было заранее для таймера выделить, но why bother (c)

Berkus
30.08.2017
12:05:08
Тут недавно просто рассказывали, что Торвальдс плохого не напишет
думаю торвальдс не имеет ни малейшего представления про FTDI и писал кто-то еще

он только обсирает тех кто писал, громко и в мейлинг листе

Google
Matwey
30.08.2017
12:05:20
а что такого кошмарного? буфер там в urb юзается, со стека нельзя из-за dma, а дальше сразу фришится
насколько я помню, там уже нет никакого dma. но это надо проверить

Pavel
30.08.2017
12:05:33
Alan Cox это был

в 2009 году. не гоните, кокс тоже няшка.

Matwey
30.08.2017
12:06:27
там - где? в ohci/udhci/ehci/xhci?
В usb_control_msg. Могу путать, сейчас узнаем

Vladislav
30.08.2017
12:06:41
путаешь

Pavel
30.08.2017
12:08:26
include/linux/usb.h:1367

про transfer_buffer. тот байт как раз там и заканчивает

Berkus
30.08.2017
12:09:08
и его прямо обязательно kmalloc-ать?

или это какой-то буфер который шарится потом с клиентом

Pavel
30.08.2017
12:09:46
с железкой

будет плохо если он будет на стеке же

Berkus
30.08.2017
12:10:09
если асинхронно то плохо, если синхронно - не вижу разницы

Vladislav
30.08.2017
12:10:12
не везде, но лучше пусть этим dma_map заведует

Pavel
30.08.2017
12:10:13
хотя я в этом не разбираюсь совсем )

синхронное дма?

хм

Vladislav
30.08.2017
12:10:59
если асинхронно то плохо, если синхронно - не вижу разницы
разница в dma zone, стек может быть вне dma диапазона

Berkus
30.08.2017
12:11:13
разница в dma zone, стек может быть вне dma диапазона
а ну если это дма, то да - асинхронное

Matwey
30.08.2017
12:12:20
путаешь
да, ты прав

Страница 1259 из 2477