• ZF || YII || Рельсы ||?

    @Dialog
    yii прост в изучении, легок в работе, легко расширяем
    RoR… надо бы поучить, но в целом это вещь
    zend… староват уже и тяжеловат
    node.js не подходит для вашей задачи
    Ответ написан
    2 комментария
  • ZF || YII || Рельсы ||?

    weralwolf
    @weralwolf
    Сугубо личное мнение: Yii изящнее, лаконичнее, удобнее ZF, в него проще въехать. В Yii Вы получаете костяк приложения, к которому удобно цеплять нужные компоненты. ZF — конструктор, который лишь намекает как с ним правильно работать. В придачу, Yii реализует из коробки свойства, события и поведения, которые, если потратить чуть времени и разобраться, оказываются очень удобными. К тому же, к Yii очень легко прицепить нужную компоненту из ZF, (это может быть модуль почты, генератор РСС или чтото в этом духе).
    Почему использовать Yii, если там нет всего? С этого я начал. Yii дополненый, в случае необходимости, компонентами из ZF приятнее самого ZF.
    В техническом представлении сервиса были кронтаски, поэтому замечу, что как в Yii так и в ZF есть инструменты для создания консольных приложений, которые, деля с вэб частью код моделей и прочих класов, намного лучше подходят для сервисных задач уже тем, что самодостаточны, запускаются напрямую из консоли и не требуют дергать себя через веб-запрос.

    За рельсу не скажу, а nodejs хорош. Не уверен, что есть смысл писать на нем полностью веб приложения, но выносить высоконагруженные апи, которым нужно плеваться JSONом, либо чтото, на что хорошо ложится событийно-ориентированный подход (веб-чатик, к примеру) вполне.
    Ответ написан
    Комментировать
  • Требуется совет начинающему разработчику

    png
    @png
    Вопрос действительно пространный. Для себя его я понял так, чтобы мне ещё изучить, чтобы стать лучше. То есть вы не знаете куда двигаться дальше.
    Послужной список у вас очень приличный, вы уже большой молодец. Далее идет оттачивание навыков и опыта.
    Какую нишу займете — там и развивайтесь.

    Будет это .NET — платформа — замечательно.
    Лично мне больше нравится java / j2ee/ j2se. Но это уже дело вкуса.

    Итак, советы:

    0. Купите/скачайте книгуМакконнелл Совершенный код
    Эта книга просто сокровище для разработчика. Сам купил по совету преподавателя на 3-м курсе, ни разу не пожалел. До сих пор открываю, и нахожу там для себя что-то новое.

    1. Проверьте правильность понимания вами принципов ООП. Принципы проектирования классов и прочее.
    Знать о существовании шаблонов проектирования и их применении тоже желательно.

    2. Качество знаний языка SQL поможет вам проверить этот сайт. Имеет смысл так же перечитать принципы проектирования БД. Нормальные формы и прочее.

    3. Если ударитесь в Web, то знать
    HTML, CSS, JS надо, нужно знать хотя бы что это и как это работает.
    а так хорошо знать протокол HTTP и принципы сетевого взаимодействия.

    Короче, идею вы надеюсь поняли, лучше всего копить пакет общих знаний и опыта о разработке. Такие разработчики ценились всегда дорого. С такими знаниями работается качественней и эффективней.
    Ответ написан
    2 комментария
  • Как лучше хранить адрес файлов/картинок в базе данных

    @rPman
    Хранить в базе смещение (можно поделить на размер сектора или больше 4096...) и размер файла, при должном красноглазии можно завернуть оба числа в 64bit long и пользоваться им как идентификатор файла, сами файлы хранить в одном большом контейнере (можно не сильно заморачиваться с файловыми системами и складывать прямо в /dev/sda), как результат — максимально быстрый доступ к файлам (быстрее — только при самостоятельной организации кеширования под задачу) и максимально неудобное обслуживание при частых удалениях/изменениях файлов (запись только в конец контейнера, по окончании места — полная реорганизация хранилища, с выдачей новых id… но это может оказаться приемлемой платой и в некоторых задачах ее даже не придется платить).

    p.s. посчитали это шуткой? просто все зависит от задачи и особенностей использования данных.
    Вышеописанный способ использовался достаточно давно для не web-проекта, обеспечивал 'максимальную из возможных' производительность при резервном копировании, чтении и добавлении новых файлов, позволял организовать версионность 'из каропки',…
    Ответ написан
    2 комментария
  • Паттерны в php

    Fastto
    @Fastto
    википедия — по большинству паттернов предоставлена реализация на php
    Ответ написан
    Комментировать
  • Когда в PHP использовать интерфейсы, а когда абстрактные классы?

    @resurection
    Я бы сказал так:
    Интерфейс — это возможность задать жёсткую семантику.
    Абстрактный класс — это возможность вынести дублирующийся код и явно это отметить в иерархии.
    Ответ написан
    Комментировать
  • Когда в PHP использовать интерфейсы, а когда абстрактные классы?

    sainnr
    @sainnr
    Как пишут умные люди (Шилдт, Троелсен) в своих умных книжках, интерфейс определяет функциональные возможности, поведение — «что именно следует делать, но не как это делать» (Г.Шилдт, Полное руководство C#). В абстрактном классе «определяется лишь самая общая форма для всех его производных классов, а наполнение ее деталями предоставляется каждому из этих классов» (там же).

    Простой пример, в контексте графического редактора можно определить:
    Абстрактный класс — Figure (геометрическая фигура), от него могут быть образованы классы конкретных фигур — например, Rectangle, Circle и т.д.
    Интерфейс — Drawable (то, что можно нарисовать). Он может быть реализован как во всех классах конкретных фигур (Circle, Rectangle), так и в других классах, не образованных от абстрактного Figure.
    Ответ написан
    Комментировать
  • Когда в PHP использовать интерфейсы, а когда абстрактные классы?

    try4tune
    @try4tune
    С точки зрения архитектуры:

    Интерфейс описывает свойства. Обратите внимание на классические названия интерфейсов: Throwable, Countable, Comparable, Iterable и т.д. Возьмем, к примеру, интерфейс Rollable (катящийся), и Foldable (складывающийся).

    Абстрактный класс же описывает сущность. Например, стол: Table_Abstract. Стол может быть деревянным, тогда будет Table_Wood extends Table_Abstract. Также стол может быть хирургическим: Table_Surgical extends Table_Abstract. В таком случае Table_Abstract объединяет общий свойства всех столов (скажем, площадь поверхности, наличие ножек и т.п.). А конкретный класс описывает сущность определенного типа столов.

    Связью же интерфейсов и классов Вы описываете свойства. Например, стол можно катить: Table_Abstract implements Rollable. Деревянный стол, например, можно сложить: Table_Wood implements Foldable.
    Ответ написан
    5 комментариев
  • Когда в PHP использовать интерфейсы, а когда абстрактные классы?

    miraage
    @miraage
    Старый прогер
    К примеру, нужно написать класс для работы с кэшем.

    У нас есть класс Cache, который будет делать всю грязную работу. Он в свою очередь будет использовать библиотеку под определенный тип кэша (memcached, eaccelerator, ...). Для согласованности, библиотека должна реализовать интерфейс cacheInterface, чтобы класс Cache мог нормально работать. Вот небольшой пример.

    Интерфейс для библиотеки:
    Ответ написан
    3 комментария
  • Смартфон на Android?

    @antivir
    Если нужен увесистый — берите HTC, если очень легкий — Samsung. Я после увесистого HTC HD2 перешел на Galaxy и обратно не хочу.
    Ответ написан
    Комментировать
  • Имеет ли смысл перевести веб-сайт в open-source?

    @ZloiZmei
    Программное обеспечение бывает open-source, но не один сайт. open-source ПО быстро развивается, потому что каждый может использовать и заточить под свои нужды. Один сайт — это специфичная задача, да и (исходя из содержания) не настолько интересная что бы заинтересовать энтузиастов программирования сама по себе. Это же не поисковая система. Клонировать функционал тоже смысла большого не имеет.

    Если движок стоящий, можно попробовать сделать open-source CMS, на эту тему была куча постов на хабре. Если движок так себе — то проще взять что-нибудь готовое, чем изобретать велосипед. А для работы над сайтом (имею в виду программирование) заинтересованная команда нужна.

    Сайт, на мой взгляд, может быть «open» только в двух вариантах: контент (наполняется пользователями, web2.0) и API. Первое у вас думаю есть, а второе не нужно.
    Ответ написан
    1 комментарий
  • Поиск ближайшей точки

    ertaquo
    @ertaquo
    Самый простой способ — перебором:
    var sqr = function(x) { return x * x; };
    var summ = 0;
    for (var i in red_points)
    {
      var minSLen = false;
      for (var j in black_points)
      {
        var sLen = sqr(black_points[j].x - red_points[i].x) + sqr(black_points[j].y - red_points[i].y) + sqr(black_points[j].z - red_points[i].z);
        if (minSLen === false || sLen < minSLen)
          minSLen = sLen;
      }
      if (minSLen >= 0)
        summ += Math.sqrt(minSLen);
    }
    

    Эффективность у него довольно низкая, но зато работает в любых условиях :-)
    Ответ написан
    1 комментарий
  • Какую самую интересную книгу IT тематики вы прочитали в последнее время?

    taliban
    @taliban
    php программист
    Вообще Фаулер и Макконел — два автора которые пишут изумруды =) очень хорошие профи и неплохо пишут.
    Ответ написан
    Комментировать
  • Какую самую интересную книгу IT тематики вы прочитали в последнее время?

    raduga
    @raduga
    Вообще после Роберта Мартина «Чистый код» тяжеловато читать хоть что-то, так он классно и доходчиво объясняет. Кстати также на меня подействовала книга Крэга Лармана «Применение UML и шаблонов проектирования».
    А последняя прочтенная книга была Мартина Фаулера «Рефакторинг». После прочтения рекомендовал её всем друзьям — программистам. Могу даже сказать так, код написан до Фаулера и после ). Может не так интересно как у Роберта Мартина, но более обстоятельно и глубоко.
    Ответ написан
    Комментировать
  • Symfony 2 или YII?

    taliban
    @taliban
    php программист
    Я бы советовал изучить оба. Берете задачу (блог, как бы банально это не звучало) и делаете две версии на этих фреймверках. По окончанию у Вас уже будет сделан выбор в пользу одного из них + базовые знания второго.
    Ответ написан
    3 комментария
  • Symfony 2 или YII?

    @Nc_Soft
    Я бы посоветовал yii
    Не знаю преимуществ симфони над ним.
    Ответ написан
    4 комментария