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

    @ollisso
    Рекурсия - так же как и любой другой инструмент - это в первую очередь инструмент.

    Её можно и нужно использовать там где её нужно и можно использовать :)

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

    Если же можно реализовать без рекурсии задачу - то обычно лучше реализовывать без неё.
    Ответ написан
    Комментировать
  • Как вести историю изменений сущностей в системе?

    @ollisso
    > Тупо создается таблица для истории изменений
    Лучше умно :)

    Зависит что именно вы хотите сделать, т.е. какие бизнестребования.
    Вариант 1:
    нужно просто иметь лог о том что изменилось. В этом случае, вы можете просто при любом изменении писать лог:
    кто изменил, когда, что изменилось, старое значение, новое.

    Вариант 2:
    вам нужно в любой момент иметь возможность откатить до указанного состояния (как вики, например).
    Тогда делаете п1 и добавляете функционал работы с логами.

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

    @ollisso
    можно напрямую ексель файл парсить. Есть классы для этого.

    главный вопрос в каком виде сейчас лежат картинки ?
    Ответ написан
  • Контроль версий при разработке. Что легче для новичка?

    @ollisso
    Git или Subversion.

    Subversion проще (фактически, в начале нужно всего 2 команды в начале -> commit, update)

    Github - сложнее, но намного больше функционала. Т.е. в идеале - лучше его :)
    Ответ написан
  • Должен ли заказчик платить за купленные в ходе разработки библиотеки кода?

    @ollisso
    Мнение:
    если не обговорено было заранее, и без этой библиотеке не работает код - вы должны её отдать им.

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

    @ollisso
    Вообще сложный вопрос "откуда эта информация".
    Для меня эта информация из разряда "а почему птицы летают" - т.е. само собой разумеется :)

    Вообще, если искать информацию, то информацию подобного типа стоит искать из фундаментальных книг по строению компьютеров, программм, компиляторов и тп.
    Так же, что происходит при переходе внутрь функции - идёт вызов функции, передача данных в функцию и тп.
    Ответ написан
    Комментировать
  • В чем заключается работа человека в web и с сетями?

    @ollisso
    построение сетей, создание протоколов, написание низкоуровневых протоколов общения с сервером, нагрузка и тп, то :
    > 1. Что то низкоуровневое типа C, теории вычислений, компиляторов и изучения детально стека протоколов + какой-то скриптовой язык.Комбинаторика, криптография.

    Причём стек в обязательном порядке.

    Если же вы хотите реализовать сервисы, то высокоуровневые вещи, но там фактически вам мало придётся заниматься сетями.
    Ответ написан
    Комментировать
  • Можете прокомментировать такой набор функций php?

    @ollisso
    если вы хотите проверить "изменил ли запрос что то " - то можете просто проверять, affected_rows.

    Правда если вы два раза выполните один и тот же апдейт как у вас в примере - то второй раз он сообщит что изменено 0 строк.. потому что нечего менять.
    Ответ написан
  • Как создавать качественый код в 3-4-5 раз быстрей?

    @ollisso
    1. забыть про скорость набора после "определённого уровня".

    "определённый уровень":
    1. ты можешь писать смотря в экран и одновремённо думать о том, как программа будет работать.
    2. на клавиауру вообще не смотришь, чувствуешь её на ощупь, т.е. фактически голова говорит "напиши слово", и пальцы сами работают, а голова в этот момент думает о печеньках :)


    Если ты можешь печатать и при этом думать о клавиатуре - структуре функции/кода - можно дальше не ускоряться.

    Причина почему дальше безсмысленно:
    особого прироста не будет.
    основное время идёт на продумывание структуры/архитектуры, а не на сам код.

    2. продумывать структуру кода, чтобы она была удобная, легко понимаемая и предсказуемая.

    Причина:
    читать и понимать этот код придётся ещё не 1 раз.

    3. лёгкие для понимания названия переменных, функций, классов.

    4. тренироваться. анализировать постоянно старый код, в том числе его переписывать чтобы было лучше.
    Ответ написан
    Комментировать
  • Является ли хорошим тоном постоянно использовать много методов/функций?

    @ollisso
    > И есть ли какие-либо рекомендации по объёму строк в функциях?

    Зависит от языка.

    Простые правила, которые вычитал в одной из книг, и стараюсь использовать:
    1. 1 дело = 1 функция.
    Т.е. в вашем случае - не должно быть функции которая сразу же считает и площадь поверхности и объём объекта

    2. если код используется больше чем в 1 месте - выносим его в отдельную функцию

    3. нормальная длинна функции - не больше 1 экрана.
    Если больше - стоит задуматься о том, чтобы её разделить.

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

    @ollisso
    $result = takeMoney(100);
    
    if($result==='ok')
          echo "Удачно сняли деньги";
    }elseif($result=='account_closed'){
          echo "Аккаунт закрыт";
    }elseif($result=='money_wrong'){
          echo "Вы указали неправильную сумму";
    }else{
     echo "Непредвиденная ошибка";
    }


    Это решение в лоб, без сложностей если.
    takeMoney соответственно возвращает коды ошибок или 'ok' если ок

    Пример на пхп, но подобное пишется на любом языке.
    Ответ написан
    3 комментария
  • Почему не работает ОПЕРАТОР ПРИСВАИВАНИЯ!?

    @ollisso
    1. сделайте так:

    var_dump($dost_res);
    var_dump(iconv("windows-1251", "utf-8", $dost_res));
    $like_mail .= iconv("windows-1251", "utf-8", $dost_res);
    2. запустите скрипт.
    что вывело ?

    99% что dost_res пустое или же не может адекватно конвертироваться из windows-1251 в utf-8
    Ответ написан
    3 комментария