Ответы пользователя по тегу Программирование
  • Как нарабатывать мышление "правильного" программиста?

    Adamos
    @Adamos
    Разбор ряда часто используемых алгоритмов. По-русски, подробно.
    Код, правда, на Паскале, но это для понимания практически неважно.
    Ответ написан
    Комментировать
  • Возможно ли использование нейронной сети для ценообразования в строительстве?

    Adamos
    @Adamos
    сметчик работает в определенно заданной среде (Федеральная база, Региональная, Территориальная и.т.д.).

    Попробую угадать: а поскольку эти базы сделаны через задницу, причем каждая - через свою, особенную, то свести их данные к чему-то единому может только человек... ну, или нейронная сеть после долгого обучения. Ведь правда?
    Ответ написан
  • Как разбить большую функцию на несколько мелких?

    Adamos
    @Adamos
    Архитектура измеряется не длиной функций, а их назначением. Функция, выполняющая ровно одну задачу, обычно и не будет длинной.
    Подойдите к вопросу со стороны тестирования. Вас устроит тест этой функции как единого черного ящика? Или у нее есть конкретные части, которые выполняют полноценные подзадачи, под которые хорошо бы иметь отдельный тест на случай, если в функции будут изменения? Если нет и у вас просто однородная простыня - разбивать незачем. Если есть - почему нет?
    Ну, а если вас смущает накопление никому больше не нужных функций - вспомните, что в РНР есть ООП и все это может быть собрано в класс, а нигде больше не используемые функции - сделаны приватными.
    Ответ написан
    Комментировать
  • Какая математика нужна програмисту?

    Adamos
    @Adamos
    > Математику в школе я знаю на среднем уровне (не умный но й не тупой)

    Это значит, что вам либо сильно не повезло с учителем, либо (и скорее всего) вам не стоит заниматься чем-то плотно завязанным на математику. Потому что вы просто не выдержите конкуренции с теми, кто искренне любит и понимает математику, а таких среди программистов немало. Имеется в виду та их часть, которая вообще пользуется математикой на уровне выше арифметики.
    Кодером, конечно, можно быть и с образованием в 4 класса, но мечтать о карьере и нормальной зарплате с такими данными не стоит...
    Ответ написан
  • Должен ли программист знать ассемблер?

    Adamos
    @Adamos
    Программисту желательно понимать, что происходит "под капотом" того, что он пишет.
    Но это не обязательно изучать "снизу", от машинных кодов.
    Веб-программисту полезнее будет знать, например, каким образом PHP реализует свои объекты и массивы, или что творится в памяти, когда используешь замыкание в JS...

    Если глубина знаний достигнет регистров процессора - это, конечно, замечательно. Но начитываться неактуальной информации про работу предсказателя ветвлений, не представляя досконально, как работают ежедневно используемые функции того языка, на котором пишешь - просто нелепо.
    Ответ написан
    Комментировать
  • Стоит ли делать в таком случае базовый класс и наследоваться от него?

    Adamos
    @Adamos
    Нет, так делать не стоит.
    Вы таким наследованием нарушаете L в SOLID.
    Ответ написан
    2 комментария
  • Почему программисты не любят возврат константных ссылок в C++?

    Adamos
    @Adamos
    На самом деле, в жизни все может оказаться несколько сложнее. Если вы передаете по ссылке член класса, который сам является классом и содержит, например, контейнеры - то передача по ссылке не запустит конструктор копирования. Время это сэкономит, но создаст зависимость дальнейшей жизни кода от того, что там происходит внутри класса. То есть потенциальные грабли, от которых потом замучишься избавляться.
    А программирование, как известно - это в первую очередь управление сложностью. Оптимизации стоят намного ниже в списке.
    Ответ написан
  • Почему программа зацикливается при переборе?

    Adamos
    @Adamos
    Судоку решается так:
    1. проходим по всей таблице и для каждой ячейки определяем, какие цифры в ней могут быть, по уже имеющимся.
    2. проходим по всем ячейкам. Если там может быть только одна цифра - заносим эту цифру в ячейки и исключаем ее вариант из всех ячеек, которые "бьет" данная. Выставляем флаг "были изменения".
    3. проверяем варианты на всех линиях в поисках единственного места, где может стоять цифра. Если находим такое место - вписываем цифру, "бьем" ячейки, выставляем флаг.
    4. если выставлен флаг "были изменения" - возвращаемся в п. 2
    5. если поле не заполнено полностью, значит, решения нет.
    И никакой перебор с возвратом здесь на хрен не нужен.
    Ответ написан
  • Есть ли программа для автоматического создания Backup сайта?

    Adamos
    @Adamos
    Cron + mysqldump + rsync.
    А все эти виндовские кряки и сервисы приведут только к тому, что через неделю на сайте будет вирусня, и вариантов, откуда она взялась, будет даже больше, чем обычно.
    Ответ написан
    Комментировать
  • Как правильно перевести "bootstrap" на русский язык (в программировании)?

    Adamos
    @Adamos
    Нет такого слова в русском языке - "схожое".
    По теме: адекватный перевод без контекста - фикция и томление духа.
    Ответ написан
    3 комментария
  • В чем разница между Ассемблером и Компилятором?

    Adamos
    @Adamos
    Ассемблер - переводчик "один в один": есть команда - есть соответствующий ей машинный код.
    Компилятор - сложная мясорубка: он не только приводит все, что было написано на языке высокого уровня, к низкоуровневым инструкциям, но и оптимизирует код - разворачивая короткие функции, например, чтобы избежать затрат на их вызов.
    А заодно он проверяет код на соответствие синтаксису и базовую логичность, выдавая соответствующие ошибки и предупреждения...
    Ответ написан
  • Рекомендуется ли выделять под форматирование и подготовку MySQL запроса целый метод/функцию?

    Adamos
    @Adamos
    Та часть кода, которая работает с БД, должна быть связана со всем остальным кодом только тем набором данных, которые ей надо сохранить или прочесть.
    Логика приложения не должна ничего знать о таблицах, запросах и прочем. Она должна только знать, как обратиться к обертке над БД, чтобы получить или сохранить данные.
    Любые смешения этих двух уровней приводят к говнокоду - это проверено уже несколькими поколениями пыхеров.
    Ответ написан
    2 комментария
  • Документирование кода. Правильно ли я делаю?

    Adamos
    @Adamos
    Комментарии на английском - хорошая практика.
    Если у вас возвращается переменная со значением true или false, логично назвать эту переменную по условию, которое истинно или ложно. Operation не может быть true, а вот, скажем, success - может. И комментарий станет излишним, по имени понятно. Аналогично, если в переменной operation_messages должны быть error descriptions, какого черта она называется иначе?
    В общем, если в этом, вполне очевидном, случае верно назвать переменные, то комментарий сожмется до описания формата ввода и вывода. Остальное comments itself.
    Ответ написан
    3 комментария
  • Каковы Ваши доводы за неиспользование транслита в коде?

    Adamos
    @Adamos
    Есть технический вариант: внедрите в используемом IDE проверку синтаксиса и сделайте ее "чистоту" обязательной. Транслит не пройдет, а заодно уменьшите количество опечаток. Особенно актуально для языков с неявным объявлением переменных типа пыха с жабоскриптом.
    Ответ написан
    Комментировать
  • На чем лучше всего писать современые прикладныи приложения под Windows?

    Adamos
    @Adamos
    По тем пунктам, которые знаю сам:
    Microsoft Foundation Classes - труп, официально закопанный самой MS
    Visual Component Library - труп, живущий только потому, что студентов годами учили писать под Борланд
    Qt - логичный вариант, минусом тяжеловесность, плюсом кроссплатформенность и развесистость (много готового кода, который можно просто использовать)
    wxWidgets - ну, представьте себе, что независимые программисты посмотрели на MFC и VCL и сделали все то же самое, но кроссплатформенно. Зависимостей нет - все API нативное под каждую платформу. Увы, востребовано оно куда меньше Qt, поэтому развивается вяло и не так богато готовеньким.

    Да, и сейчас уверенно заявлять, что будешь писать только под Windows, довольно неосмотрительно, как мне кажется...
    Ответ написан
    Комментировать
  • Используете ли вы витамины для "мозга"?

    Adamos
    @Adamos
    Во-первых, вы зря торопитесь. Посидите за компьютером лет пятнадцать-двадцать, начнутся проблемы со спиной, невролог вас будет кормить теми же витаминами В-группы в ударных дозах. Наедитесь еще.

    Во-вторых, на такие вопросы в интернетах чудовищное количество ответов, в основном оплаченных. Поэтому, когда вам будут настойчиво советовать пить обычный компливит, вспомните, что обычный ундевит от него отличается только ценой - раз в десять, правда... Ну, и найти его в аптеках труднее, особенно на витрине - там как раз красивые коробочки, прославленные телевизором.
    А так - попить витамины пару раз в год, для профилактики, никому еще не вредило. Но надеяться, что они дадут вам способности, которых у вас нет - как минимум наивно. Они разве что спасут от депрессии, хронической усталости и прочих состояний, граничащих с нерабочим. Подстегивать чем-то здоровый организм - это брать взаймы у собственного будущего. Очень не советую.
    Ответ написан
    8 комментариев
  • Каким образом избавиться от сообщения об неиспользуемых переменных?

    Adamos
    @Adamos
    void check_register( uint16_t status ) { status = status; }
    или
    uint16_t check_register( uint16_t status ) { return status; }
    и вызывать
    check_register(I2C1->SR1);
    нормальный компилятор вызывать такую функцию не будет, но проигнорировать ее тоже не сможет ;)
    Ответ написан
    Комментировать
  • Задача про стену и кирпичи. Как решить?

    Adamos
    @Adamos
    Обычная комбинаторика
    1. Определяем все различные комбинации кирпичей, укладывающиеся ровно в 25 м - их, кстати, не так уж много, ибо 25 = 3х3 + 4х4 = 7х3 + 1х4, и только
    2. Определяем, какие из них не могут лежать рядом из-за просветов
    3. Перебор рекурсией получившихся вариантов для первого, для него - второго и т.д. рядов

    Ничего особенно неоптимального по памяти не должно получаться

    P.S. Ах да, нужно же только подсчитать количество. Тогда задачу проще начать решать на бумажке в клеточку - глядишь, программировать вовсе не понадобится
    Ответ написан
  • Как вернуть мотивацию к учебе?

    Adamos
    @Adamos
    Вы только головой учитесь, что ли? Это, конечно, дико скучно.
    Учиться программированию надо руками!
    Беритесь за проект, который вам не по зубам, и грызите гранит.
    Иначе учеба пройдет впустую.
    Ответ написан
    3 комментария
  • Как вы используете git при разработке в одиночку?

    Adamos
    @Adamos
    Для себя одного git, как мне кажется, нужен только как "машина времени" и "обратный роадмап".
    То есть, чтобы иметь возможность посмотреть более ранний вариант кода и чтобы в потоке коммитов найти, когда были какие-то конкретные изменения.
    По большому счету, ничего, кроме коммитов в мастер, тут и не требуется. Разве что желательны мелкие коммиты с осмысленным написанием изменений, а не куски того, о чем сам не вспомнишь через неделю.
    Ответ написан
    6 комментариев