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

    Mendel
    @Mendel
    PHP-developer
    Я всегда придерживался принципа, что идеальное сферическое ТЗ в вакууме это такой документ, который в будущем станет документацией на продукт.

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

    Инструкцию всегда можно просто и быстро превратить в ТЗ. А если вы не готовы писать инструкцию, то вы не готовы писать ТЗ, т.е. еще не имеете достаточного понимания структуры, задачи и т.п. Может быть она и появится в процессе написания…
    Ответ написан
    Комментировать
  • Кто может объяснить, зачем мне GIT?

    Mendel
    @Mendel
    PHP-developer
    Управление историей. Нетбинс любит терять историю, реально рассчитывать на нее нет смысла. А тут это основа.
    Ветвление и слияние. Когда нужно делать большое изменение, а система уже в продакшене, и ты вынужден ее поддерживать, то сделать ветку, и править на ней, а потом объединить ветки, да так чтобы не затереть изменения в обеих — почти невозможно когда нет системы управления версиями.
    Совместная работа. Пропадает всякий бред типа в аське писать мол не трогай такой-то файл, я его правлю…
    Сотни мелких коммитов с описаниями. Т.е. делаешь изменения, и сразу описываешь, и сразу видно в каких файлах это было и когда… Помогает в расследованиях, в документировании.
    Возможность контролировать «что изменилось». Анекдотичный случай — я как-то в четыре часа ночи решил переименовать в одном классе модели поле desc на _text. Оно фигурировала в нескольких сотнях классов, поэтому я использовал поиск и замену. Полуручную.

    Через месяц у меня выплыл глюк с сортировкой данных. Оказывается при поиске я случайно заменил desc в запросах в ORM. Был бы тогда GIT да получше покрытие тестами — не пришлось бы два часа искать причину. Я бы увидел, что у меня есть изменение в таком-то файле, а оно там неуместно…

    Причин много может быть. Но возможно просто ваши объемы сложности еще не требуют от вас таких решений.
    Ответ написан
    2 комментария
  • WEB-программирование. Что выбрать и с чего начать?

    Mendel
    @Mendel
    PHP-developer
    ИМХО в вашем случае стоит начинать с пхп.
    Поскольку вы имеете опыт работы с более-менее строгими языками, то либерализм пхп не должен повредить детскую неокрепшую психику. Правда стоит таки включить E_STRICT сразу когда начнете писать.

    Преимущество пхп для новичка — есть работа для новичка. Слишком много нужно выучить общих технологий, чтобы можно было претендовать даже на юниора в более продвинутых языках.

    Вы только не ведитесь на эту либерастию… сначала упиваешься как круто, что тебя ни в чем не ограничивают, потом свыкаешься с мыслью что многих привычных инструментов нет (и это вам еще повезло, вы не застали ООП в пхп4). Потом жизнь кажется прекрасной… а когда переваливаешь через мегабайт кода, начинаешь ныть «дайте, дайте, дайте мне жесткую типизацию!!! расрас», включаешь E_STRICT и сразу узнаешь о себе много нового…

    Итог: советую пхп, но сразу писать строго. Начните с одного из стандартов оформления кода…
    Ответ написан
    2 комментария
  • Как проходят «хакатоны»?

    Mendel
    @Mendel
    PHP-developer
    Библиотеку в сети выложите. Пусть даже непублично. Не думаю что будут запрещать интернетом пользоваться.
    Ответ написан
    Комментировать
  • Зацикливание в мод_реврайт?

    Mendel
    @Mendel Автор вопроса
    PHP-developer
    Решение:
    #
    RewriteRule ^.*\.html$ /index.php [L,QSA]
    RewriteRule ^.*\.htm$ /index.php [L,QSA]
    RewriteRule ^.*\.tpl$ /index.php [L,QSA]
    RewriteRule ^.*/$ /index.php [L,QSA]
    #
    RewriteCond %{REQUEST_FILENAME} !index\.php$
    RewriteRule ^.*\.php$ /index.php [L,QSA]
    

    отличие от варианта предложенного выше в том что в условии !index\.php$ а не !^index\.php$ т.е. нет ^
    Ответ написан
  • Неожиданно правильное поведение программ

    Mendel
    @Mendel Автор вопроса
    PHP-developer
    Ну и да, раз уж ушли от темы «неожиданно ПРАВИЛЬНОЕ», в сторону просто ошибок, то вот еще пример:
    в 2006 году, когда под пхп5 уже начинал писать, но еще так, чтобы пхп4 работал…
    Писал библиотеку авторизации.
    И мучали меня сомнения… но так и не придумал почему мне все-таки не использовать $_REQUEST вместо $_GET + $_COOKIE.
    Не придумал. Написал.
    Сейчас библиотека сдохла. Почему? Оказывается в 5.3 появилась request_order.
    ====
    Вот здесь как раз я признаю нарушение самого главного правила разработки: «Слушай свою жопу. Если она говорит не делай — не делай». А все остальное — общие слова. :)
    Ответ написан
    Комментировать
  • Как объяснить программисту принцип единой ответственности?

    Mendel
    @Mendel
    PHP-developer
    Вы уверенны, что это необходимо? Как-то видел как программист потратил три дня на оптимизацию кода, который должен был выполнится ОДИН РАЗ. Время работы кода сократилось с 10 минут до пяти.

    Вообще действительно человека тут не переубедить. Каждый программист должен пройти через стадию «Какой мудак писал этот код???? Ой, это же я… вот мудак!»

    Если можете сказать: «ты должен писать вот так-то, потому, что я так сказал», то скажите.
    Если нет — смиритесь :)
    Ответ написан
    1 комментарий