Задать вопрос
  • Стоит ли переходить с 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 комментария
  • Что выбрать или Django vs Flask?

    @sormon
    инженер-программист =)
    На сегодняшний день ситуация такова, что Django гораздо сильнее востребован на рынке, нежели Flask. Однако, для написания действительно сложных боевых проектов лучше брать Flask, в частности, из-за достаточно слабого ORM в Django, а так же из-за того, что Django очень монолитный фреймворк, что будет вызывать проблемы в сложных случаях, когда нужно больше, чем дает Django, или то, что он предлагает, в какой-то части не подходит для задачи. Здесь мощь Flask заключается в том, что он позволяет использовать разные инструменты для задач, связывая их, как нужно, иногда даже реализовывая компоненты под себя. Но, накладные расходы здесь будут — написание обвязки, необходимость уметь проектировать систему и более глубоко понимать, что происходит (но в больших и сложных проектах это и так необходимо.)
    Ответ написан
    Комментировать
  • Тяжело ли, зная язык программирования на уровне джуниора, найти удаленную работу?

    zolt85
    @zolt85
    Программист
    По пунктам, не "растекаясь мыслью по древу":
    1. Тяжело или легко найти работу это вопрос философский. Кто ищет, тот всегда найдет. Всем конечно же нужны крутые спецы с опытом, но такие люди, как правило, устроены.
    2. Для удаленной работы годны все языки. Проще найти работу на PHP. Он вообще вне конкуренции. Но с ним не достаточно просто знать язык, нужно владеть всякими CMS/CMF/Framework аля WordPress, MODx и прочие Битриксы.
    3. Java популярна только в контексте мобильной разработки (Android). Очень редко попадаются заказы на web разработку. На standalone приложения заказов вообще не видно. По поводу node.js выскажу свое мнение: серверная часть на JavaScript это суровый мазохизм, правда. Но работу на ноде все-же проще найти, ибо модная она.
    4. Невысокий порог опят же у PHP.
    Ответ написан
    3 комментария
  • Тяжело ли, зная язык программирования на уровне джуниора, найти удаленную работу?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Конкретно удаленку (а не фриланс) найти просто. Причем даже не нужны какие-то крутые знания, просто ищите работу "мастера на все руки". Будете поддерживать сайты, пилить новые и все такое (о том как при этом развиваться, написано ниже). Только платить будут мало. Точнее будут платить мало по меркам москвапитера, но для какого-нибудь небольшого городка вы будете чувствовать себя чуть ли не богачем на фоне большинства знакомых, и при этом работать по 3-6 часов в день.
    По поводу развития - все зависит от вас. Если вы жить не можете без постоянной помощи более опытных сотрудников, то вам будет тяжело. Если же вы умеете гуглить (а это на самом деле немногие умеют), любите читать все возможные статьи/книги/обсуждения и имеете тягу к запиливанию демок/велосипедов, то "прокачка" будет идти намного быстрее чем в какой-нибудь стандартной "местной веб-студии". Говорю это по своему опыту. Еще год назад я покинул местную "топовую веб-студии города" (топ40 студий по битриксу в России если не ошибаюсь, хотя на деле там печально) будучи зеленым джуном с 5 месяцами опыта работы, тут же устроился по удаленке (прям тем же вечером), а сейчас я бывшим коллегам каждую неделю показываю свои фронт-энд демки и они считают меня магистром (правда тут важно уточнить, что работая по удаленке, я вообще не напрягался, пахал по 10-20 часов в неделю и большую часть времени тратил на саморазвитие, ибо задачи там были тоже не особо развивающие).
    Так что мое мнение таково, что будучи джуном вам важно лишь думать об эффективности своего развития, и если работа по удаленке кажется вам удобным вариантом роста, то ищите не раздумывая.
    Ответ написан
    4 комментария