Задать вопрос
  • Что должен уметь веб-программист?

    Мне кажется, что веб-программист (как и любой другой) должен иметь в запасе парочку других ЯП.
    Например, PHP'ку неплохо бы уметь писать hello world на C++ / Java / .NET.
    За C++ автоматом потянутся знания о компиляции, системах сборки и т.д.
    За Java потянутся знания о серверах приложений (tomcat, wildfly).
    Эти знания фундаментальные. Написав свой велосипед на плюсах (например веб-сервер для показа баннеров), вы будете лучше понимать PHP и средства оптимизации / архитектуры и т.д.
    Java вас научит ООП, аннотациям и прочему "сахару".

    От этих знаний будет легко перейти и к администрированию Linux'а и к пониманию внутренностей Apache Http (например, работа с неблокирующими сокетами).

    Ну а вообще, если говорить о Apache Http, то у PHP есть функционал, предоставляемый HTTP сервером - это точно нужно знать.
    Ответ написан
    4 комментария
  • Как развернуть django на digitalocean?

    Комментировать
  • Стоит ли переходить с CodeIgniter на современные фреймворки?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Автору вопроса советую внимательно прочитать все ответы и найти хоть один объективный минус CI (не субъективный) из названных. (в том числе спросить их у вашего советчика, который вам посоветовал уйти с CI)

    - "В Модели тупо пишешь методы работы с базой"? Вы серьезно? И всё? А, простите, вы как хотели? Хотели автоматический биндинг на поля из базы? Сомневаюсь, что найдётся приложение, которое бы не нуждалось в фильтрации / преобразовании полей и правильного разворачивания связей между таблиц без ручного кода. Покажите мне модели в Yii для среднего размера сайта, там костылей на фильтрацию и преобразование полей для базы ещё больше, чем бы вы в CI ручного кода написали.

    Ну и да, я вообще редко встречаю программиста на PHP фреймворке, который бы понимал, как он устроен и пользовался бы всеми плюсами фреймворка именно так, как задумывал автор фреймворка. Комментарии выше это и подтверждают, судя по тому что у них весь код в контроллерах. Руки кривые у них, а не "фреймворк совсем не помогает".

    CI предельно прост, он и есть тот самый "фреймворк", который не додумывает за тебя, а позволяют самому всё реализовать. Отсюда его скорость, легкость в освоении и предельно понятный код.

    Ну и плюсом ко всему - он абсолютно не устарел. Недели две назад релизнулась 3 версия, коммиты каждый день. Или вас так пугает отсутствие неймспейсов и PSR?
    Ответ написан
    2 комментария
  • Книги по архитектуре веб приложений?

    qfox
    @qfox
    Ответы есть у меня
    Вопрос настолько обширный, что врядли кто-то вам сможет посоветовать актуальную литературу, т.к. нужны примеры.

    Большинство хороших архитектурных решений находится в постоянной разработке и люди, которые пишут книги, часто отстают лет на 5 от прогресса. А те, кто не отстает — находятся в творчесском процессе и им некогда писать книги.

    По теме могу посоветовать смотреть в сторону ruby/nodejs/go фреймворков для различных веб-приложений и сервисов, каждый фреймворк затачивается под определенную задачу и, если есть желание эффективно работать в этой сфере, вам так или иначе придется это делать — без чтения чужого кода и участия в разработке этих самых фреймворков сейчас никуда, и это полностью заменяет литературу по теме.

    Как пример, могу посоветовать сравнить www.sinatrarb.com (ruby), expressjs.com (nodejs) и martini.codegangsta.io (golang). Все они используют схему — создаем приложение, у приложения регистриуем обработчики для get/post/других запросов, в обработчиках получаем объекты request/response, и работаем с ними. Это считается базой для любых веб-сервисов, веб-приложений.

    Когда нужны какие-то дополнительные функции — все делается независимо от этих модулей внутри колбеков, которые в них регистрируются и там зоопарк очень большой. Если нужны контроллеры, модели — есть rails, compoundjs, beego. Если нужно сделать REST — обычно, берется синатра + доп. модули, и получается что-то вроде loopback.io

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

    @SlivTime
    Я бы сделал так. Переменную endpoint, конечно, можно не инициализировать, а сразу передавать строку в вызов _call_with_endpoint. Но так нагляднее.

    class Vehicle(API):
        def _call_with_endpoint(self, lang, fields, account_id, endpoint):
            if type(fields) is list:
              fields = self._format_fields(fields)  
            return self._api_call(endpoint=endpoint,
                                  fields=fields,
                                  language=lang,
                                  account_id=account_id)
    
        def vehicle_stats(self, lang='ru', fields='', account_id=''):
            endpoint = '/tanks/stats/'
            return self._call_with_endpoint(lang=lang,
                                            field=fields,
                                            account_id=account_id,
                                            endpoint=endpoint)
            
    
        def vehicle_achievements(self, lang='ru', fields='', account_id=''):
            endpoint = '/tanks/achievements/'
            return self._call_with_endpoint(lang=lang,
                                            field=fields,
                                            account_id=account_id,
                                            endpoint=endpoint)
    Ответ написан
    Комментировать
  • Каким должен быть адрес у админки?

    un1t
    @un1t
    Есть settings.py и admin_settings.py
    Во втором добавлено приложение админки.
    Сайт с админкой запускается на отдельном хосте, доступном только внутри корпоративной сети, только определенной группе.
    Общедоступный сайт соответсвенно запущен без админки.

    Но можно и совсем не заморачиваться, все засит от важности сайта и подходу к безопасности.
    Ответ написан
    2 комментария
  • Как ускорить шаблон Django?

    @kazmiruk
    Как не крутите у Вас буде 1млн итераций, что много. Из более-менее реальных вариантов - вынести этот код из шаблона (генерировать плоский список в контроллере, а затем прокидывать его в шаблон). Т.е. в результате у вас должно быть что-то типа:
    {% for el in l %}
    <span>{{o1.n}}</span>
    {% if el.flag1 %}
    ...
    {% if el.flag2 %}
    ...
    {% endif %}
    {% endif %}
    {% endfor %}

    Хотя шаблоны и компилируются, но в целом выполняются медленнее, чем код. После того, как вы получите метод, генерирующий такой список - кешируйте список (или можно даже закешировать кусок шаблона со списком). Судя по всему это что-то типа хлебных крошек категорий и часто меняться не должен. Так как рендеринг в 3 секунды - ад, то при сбросе кеша этот список надо сразу помещать назад, чтобы не заставлять пользователя ждать. Т.е. должно быть как-то так: сгенерировали новый список, атомарно заменили старый список на новый. Возможно есть еще варианты оптимизации кода (например преобразование списков в словари, исключение повторений в проверках и т.п.)
    Также можно извратиться обертками - не делать полный перебор, а сделать метод, который будет применять бинарный поиск к списку, к примеру. И Вы получите не O(N), а O(log2N). Но опять же тут надо смотреть применимость к Вашему коду.
    Ответ написан
    1 комментарий
  • Как ускорить шаблон Django?

    dizballanze
    @dizballanze
    Software developer at Yandex
    1. Кэшировать
    2. Перейти на jinja2
    Ответ написан
    2 комментария
  • Как правильно перенаправить пользователя на страницу "Спасибо за заявку" после отправки формы?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    что мешает сделать так:
    $url="/success/"; ?
    Ответ написан
    Комментировать
  • Какой путь развития выбрать?

    opium
    @opium
    Просто люблю качественно работать
    В универе настолько дохрена времени у студентов что можно выучить три языка.
    Ответ написан
    2 комментария
  • Какой путь развития выбрать?

    sim3x
    @sim3x
    Ходить на оба
    Реализовать две проги досрочно, так чтоб
    сотрудники компаний
    хотели взять тебя на работу, во время учебы
    Ответ написан
    3 комментария
  • Как сделать WiFi кнопку?

    Jump
    @Jump
    Системный администратор со стажем.
    WiFi и GSM это протоколы передачи данных, кнопки на них сделать невозможно.
    Вы бредите.
    Ответ написан
    2 комментария
  • Какие плюсы и минусы двух комбинаций технологий разработки?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Ради Аллаха, выбросите Вы все эту ерунду, возьмите React для клиента + один из фреймворков для создания серверного API на ноде. Шаблонизировать на сервере это очень специфическая задача, нужная разве что для публикации контента. А приложения лучше писать как SPA (одностраничное приложение, т.е. клиент грузится в браузер и все дальнейшие обмены данными JSON формате через API).
    Ответ написан
    6 комментариев
  • Как обстоят дела с программным обеспечением на огромных объектах?

    bobrovskyserg
    @bobrovskyserg
    Програмное обеспечение на огромных объектах работает в штатном и нештатном режимах.
    К примеру, на авианосце так оно и работает.
    О написании надёжного ПО можно узнать больше из информационной сети "интернет".
    Ваш капитан первого ранга О.
    Ответ написан
    2 комментария
  • Что будет за использование пиратских версий Windows в компании?

    kumaxim
    @kumaxim
    Web-программист
    Для начала скажите, НАФИГ Вам именно Windows? В большинстве офисов, которые я когда-либо видел та ОС ставится по инерции.
    Когда-то мне знакомый админ рассказывал, что делал довольно интересную связку Linux + Win7.
    Суть такова: офис, 30+ рабочих ПК, использую по большей части exel и word, да пасьянсы раскладывают.
    Сервер у нас работает на Win7, все клиенты на Linux.
    В каждом кабинете стоит 3-5 машин, кабинетов 7-8 штук.

    Так вот, в каждом кабинете выделяется одна машина-сервер, на нее ставится Win7. На все остальные клиенты инсталим Linux, причем он настроен таким образом, чтобы автоматически конектиться по RDP к серверу. Для каждого юзера была создана своя учетная запись.

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

    valerium
    @valerium
    Изобретая велосипед
    Во-первых, откажитесь от видео-уроков и возьмитесь за учебники. Ни один видео-урок не даст столько знаний и навыков, как хорошая книга. Одно дело - растянутое на полтора часа объяснение того, как написать элементарный "Hello, world!", а другое - хороший учебник, где каждое предложение содержит крупицу новой информации. Плюс видео делает Вас пассивным наблюдателем, а книгу в любой момент можно отложить и попробовать описанное на практике. Плюс, её можно читать на диване ;-) Но это так, к слову.

    Если лень учить, значит, не хватает мотивации. Тут два варианта.

    Первый уже предлагали здесь: найти интересную задачу и изучать технологии под неё. Например, я хочу написать скрипт, который составит список всех возможных шахматных партий хотя бы на 23 хода, изучаю для этого возможности SQL вообще и PostgreSQL в частности, далее в очереди MongoDB. Хотя мне проще, мне в принципе интересно читать тематические учебники.

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

    @SmartMary
    html-версталка
    представлять, что пасешь коров на лугу каждый день и в дождь и в холод, и мир тебе не посмотреть, и новых горизонтов не увидеть
    Ответ написан
    Комментировать
  • Как убрать лень начинающему программисту?

    @AlexLIn
    Все очень просто, заведи семью, ипотеку, ребенка, кота.
    Лень как рукой снимет.
    Ответ написан
    4 комментария