Задать вопрос
  • Есть ли ресурсы по разработке Java EE приложений в NetBeans + GlassFish и Intellij Idea + GlassFish?

    png
    @png
    Для Java Idea на порядок лучше netbeans для профессиональной разработки.
    Особенно в j2ee!
    Ответ написан
    Комментировать
  • Какую структуру БД выбрать

    png
    @png
    А можно вообще каждый столбец описать 3-я таблицами. тип данных, описание столбцов и значения столбцов.
    Будет мега универсально, но как только придется делать отчет, то на каждый столбец придется писать подзапрос.
    запросы при этом получатся трех-этажные.
    Такой подход есть в redmine для настраиваемых полей. Видел так же его в некоторых корпоративных приложениях разного класса.

    Смотри сами, что вам важнее, гибкость без изменения структуры БД или более простая обработка данных в запросах и отчетах.
    Ну и логика кода при этом будет разная.
    А так разная нагрузка, которую сможет держать БД.
    А ещё у БД бывают ограничения на количество столбцов и колонок.

    Для себя я бы выбрал что-то среднее и больше ориентировался на логику кода, которая должна быть независимой от структуры БД.
    Ответ написан
  • Java logging: как вы объявляете log-поле в классе

    png
    @png
    Однозначно первый для большинства случаев.
    если рефакторить при помощи той же idea, которая умеет заменять название класса во всех местах, где он используется. Заменяет даже в комментариях и не java-файлах.

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

    Оно вам надо?
    Ответ написан
    4 комментария
  • Что вы делали для облагораживания разработки на php?

    png
    @png
    По поводу wiki.
    Заводите в репозитории папку docs и кидаете туда текстовые файлы с описанием. github умеет красиво показывать определенное форматирование.

    Но есть вариант лучше, попробуйте GoogleDoc.
    Можно даже корпоративный сделать со своим доменом.

    плюс по сравнению с wiki
    1. одновременное редактирование несколькими пользователями
    2. крутая история изменений
    3. крутой редакторы, разные форматы офисным данных
    4. экспорт данных в разные форматы

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

    png
    @png
    Коллеги, присоединяюсь ко всему, что сказано выше.
    От себя добавлю.
    unit-тесты на старый код — это бесполезное занятие, т.к. там наверняка быдло код, его качественными тестами покрыть будет крайне трудоемко. я бы сделал так.
    1. на весь новые функционал писать unit-тесты. программистам дать для просвещения макконела и что-нибудь по практикам TDD, SOLID, GOF.

    2. старый и новый функционал покрыть интеграционными тестами.
    Если есть какие-то фоновые взаимодействия, выгрузки и прочее, это можно проверять.
    Пользовательский интерфейс тоже можно тестировать автоматизированно.
    см. BDD. Пусть в браузере прогоняется автоматически весь функционал сайта.

    3. в качестве CI-сервера я использовал hudson. Меня вполне всё устроило.
    тот же Jenkins — это его форк

    4. за продакшен должен отвечать только один человек.
    можно организовать это так. делаем отдельную ветку, или бранч, или вообще отдельный реп.
    это как организуетесь.
    в него может комитить только один человек. Этот человек делает ревью всего кода перед тем как залить его в продакшен репозиторий.
    соответственно этот человек «выпивает мозги» программистам, чтобы всё так было. Ну а случись что, есть за это дело ответственный, с которого спрашивается в первую очередь.

    5. на счет www-скрипта — это уж слишком, если б программистов было человек 30 и функционал выкатывался бы каждый день(или хотя бы раз в неделю разными людьми), то да, а так я думаю оно лишнее.
    бывают ситуации, когда приходится делать отладку на боевом комитами и www-скриптом. Кто-нибудь из программистов обязательно так сделает…
    Ответ написан
    4 комментария
  • Плагин на jquery для select?

    png
    @png
    если надо мультиселект, то вот вариант github.com/michael/multiselect/
    там есть удобный поиск по элементам. вот пример

    в ответ на это:
    >> хотелось бы когда пишешь что нибудь — то в выпадающем списке оставались варианты которые соответствуют тому что я пишу

    Это тогда уже не select, а что-нибудь ещё, попробуйте сделать обычной text-input и на него натянуть
    jqueryui.com/demos/autocomplete/
    данные могут быть подгружены как через аякс, так и из готового JS-массива
    Тогда вы получите ту функциональность, о которой написали.
    Ответ написан
    Комментировать
  • Нужна ли статья о работе с Doctrine ORM?

    png
    @png
    Статья однозначно нужна. Предположу, что автор вопроса имел в виду доктрину 2.2.
    Есть много моментов неясных моментов, которые нужно выгребать из официальной документации. На некоторые наталкиваешься, когда уже поздно. Так что сухой выжимки не получится в любом случае.
    К тому же, статья породит интересную дискуссию, что тоже само по себе не плохо.
    Ответ написан
    Комментировать
  • Сервер возвращает неверный заголовок(java, HttpClient). Как побороть?

    png
    @png
    Скорее всего у них баг в каком-нибудь php скрипте. Может им написать, мол, чего за фигня…

    если с сервером уж совсем ничего сделать нельзя, то перекройте класс HttpClient
    найдите где он там дергает заголовок и обработайте там некорректную ситуацию.
    возможно перекрывать придется какой-нибудь другой класс библиотеки, но суть понятно. у нас же ООП, можно наследоваться и перекрывать.

    Так что и так бывает )
    Если не поможет, то на крайняк самому сокетами дергать, но не хотелось бы
    Ответ написан
  • PHP: как включить картинку внутрь .doc?

    png
    @png
    Попробуйте готовые библы. например, такую.
    Ответ написан
    Комментировать
  • SELECT WHERE IN: Подскажите оптимальный вариант взаимодействия PHP - MySQL

    png
    @png
    Я за вариант 2. если нет варианта 3.
    Вариант 1 может иногда не работать из-за попадания на лимиты:

    можно попасть на 2 лимита
    1. превышение максимальной длины запроса
    2. превышение максимального количества параметров в IN. да, там тоже есть ограничения

    Ограничения есть не только в мускуле, но и в оракле, постргессе и других БД.

    Вариант 2 ещё к тому же и тормознутый, если у нас много записей во внешнем запросе.

    Простые запросы будут работать быстрее:
    select * from table1,table2 where условия
    или запрос через
    join
    select * from table1 join table2 on условие where условия

    какие из них, будет работать быстрее смотрите сами. Настройки БД подпиливаются под данные и под запросы, которые будут исполняться на этих данных.
    Ответ написан
    Комментировать
  • SSH клиент Windows

    png
    @png
    когда-то использовал этот www.shellguard.com/
    очень радовала всевозможная поддержка шрифтов и кодировок.
    есть возможность многое настраивать.
    Ответ написан
    Комментировать
  • Доступ к параметрам из репозитория Symfony 2

    png
    @png
    репозиторий — это репозиторий доктрины — класс — наследник Doctrine\ORM\EntityRepository
    я вас правильно понял?
    нельзя получить параметры из репозитория, разработчики не предусматривали такую возможность.
    Потому что так делать будет не правильно.

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

    FTP — это не БД.

    Я бы для этого рекомендовал вам сделать сервис для этих целей.
    А в сервис параметры легко подставляются через конструктор или set-методы через DI-контейнер.
    Посмотрите как они это делают в примере с почтой в официальной документации.
    Ответ написан
    2 комментария
  • Кто практикует code-review?

    png
    @png
    >> Какой код ревьювится? (весь/отдельные компоненты или изменения/другой вариант)
    В идеале нужно ревьювить всё, на практике получается просматривать только изменения.
    часто новая функциональность может потребовать рефакторинг, задача ревьювера — определить, надо ли это делать сейчас вообще.
    >> Какие используете инструменты?
    redmine — в продуктах, где требуется поддержка-доработка.
    задача — это целиком фича или функциональность. у задачи статусы, разработка-исполенно-ревью-тестировние-релиз-закрыта.
    если в задаче косяки, статус возвращается назад в разработку. Претензии к коду в комментариях к задаче.
    Когда-то использовали Redmine Code Review Plugin, но оно не прижилось

    доска с магнитами:
    весь проект бьется на задачи. задачи выписываются на бумажки и прилепляются к доске. что-то вроде такого:
    lh3.googleusercontent.com/-69gkJdi-ZVM/TpXc7i_nA1I/AAAAAAAABPE/SctbMV08z9A/s700/doska1.jpg
    (http://axshavan.blogspot.com/2011/10/3rd-day-of-agile.html) сделанные задачи попадают в столбец ревью.
    их берут люди, которые делают ревью (1-2 разработчика, и делают ревью, если в задаче косяки, она опять попадает в новые.)
    на бумажке пишется исполнитель и ревьювер.

    Причем у вас может быть не обязательно аджайл. Доска сама по себе клевая штука. Её видят все, работают с ней все. Никто не халтурит со статусами задач и т.д.

    >> Как код попадает на review? (всегда при коммите, создаёте review request руками когда нужно проревьювить, другой вариант?)
    человек делает задачу, потом подходить в ревьюверу, и говорит, я сделал, проверяй меня. или вариант с доской, просто прикрепляет бумажку в нужное место.

    >> Как используются результаты review?
    Исправляются ошибки, если какая-то ошибка проявляется часто и у многих, то собираемся вместе и обсуждаем, как не допускать эту ошибку потом.

    >> Как отслеживается что замечания сделанные во время review были исправлены?

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

    Зачем же тогда ревьювер? Очень просто — ревьювер проверяет работу, фактически решает ту же задачу в голове, проверяет алгоритмы, проверяет граничные условия алгоритмов, смотрит, конечно, и за качеством кода тоже следит. Но он ответственен только за одну задачу, а тим лид за всё + конечный результат.

    + имеет смысл ещё договориться заранее о стандартах кодирования и об ограничениях для конкретного проекта и вообще для всех проектов в целом.
    где-то обговорить или описать:
    — стандарты кодирования
    — желательные методологии TDD, DDD, партены проектирования
    — не желательные антипартены, то есть как мы не делаем, как нельзя

    — договоренности по проекту, это делаем в модулях, это выносим в плагины и т.п…

    Идея в том, что проект должен быть разработан так, как будто работает один человек. Всё должно быть по полочкам и в одном стиле.
    как-то так)
    Ответ написан
    1 комментарий
  • Как правильно осуществлять выбор зеркалки?

    png
    @png
    Выше уже советовали Canon 600D
    у меня Canon 600D
    очень доволен. можно взять его с 135-ым объективом.
    Такой объектив отдельно в два раза дороже стоит. Так что получилось даже сэкономить немного…
    Ответ написан
    5 комментариев
  • Посоветуйте ноутбук для работы

    png
    @png
    think pad x220

    был ещё его обзор тут.

    У друга такая модель. мне очень понравилась. можно взять core i3.
    Друг использует его для разработки. запускает 4 ide rubymine.
    Ответ написан
    Комментировать
  • Что приоритетнее для студента: олимпиады или работа/свой проект?

    png
    @png
    Мнений всяких много. выше уже отписали. кто-то говорит, что проекты лучше, кто-то говорит олимпиада.
    Выскажу и свое.

    Первое, я бывший олимпиадник. Участвовал в ACM. Готовился не очень фанатично. В моем вузе каких либо подготовок олимпиадных не было, а потому изучал большую часть сам. Сами собирались с командой, тренировались.
    В итоге, дальше четверть финала (первая ступень, проходила в Саратове) никогда дойти не получалось. На соревнованиях моя команда была обычно где-нибудь в середине. То есть не хуже и не лучше других. В итоге, дипломов об каких-либо местах у меня нет, только сертификат участия.

    Что оно мне дало? потеряно ли время?

    Что дали мне олимпиады командного типа, например, ACM.
    0. Классическое алгоритмическое образование.
    Вы не поверите, в разработке оно важно, очень важно, так сложилось, что постоянно приходится решать сложные вещи.
    1. Понимание тонкостей языка и его библиотек (это может быть Java или C++) — это уже важно для разработки высоко производительных приложений. Это уровень уже старшего разработчика.
    2. Умение работать с кодом, читать свои и чужой код, быстро искать в нем ошибки.
    3. Умение писать код качественно, без ошибок, думать о всех вариантах входных и выходных данных.
    4. Умение работать в команде. Практика совместного решения задач, парного программирования и прочего
    5. можно ещё долго перечислять разные плюсы…

    Что дают свои проекты(ну или работа):
    1. покопаться в чужом коде (причем не всегда лучшего качества)
    2. хорошая практика долгосрочного программирования
    3. опыт разработки проектов (это тоже важно)
    4. работа в команде (если повезет)
    5. всякие тру-практики и идеологии (TDD, Domain Design, шаблоны проектирования + ООП)
    6. пощупать разные технологии (минус, они почти все рано или поздно устареют, так что без фанатизма, изучайте то, что вам реально нужно на данный момент)
    7. может что ещё, сами додумаете…

    Вывод, олимпиада — жутко полезная штука. Даже если вы ничего не займете, то вы получите такой опыт, который позволит вам быстрее дорасти до старшего разработчика, а может и выше.
    Однако, работа тоже дает какой-то опыт.

    Я считаю, стоит заниматься и тем, и тем. Но олимпиаде давать предпочтение, т.к. как сказали выше — это долгосрочные инвестиции.
    Конечно, если вы решили все-таки победить где-нибудь, про работу лучше забыть, и готовиться. В конце концов это тоже работа очень большая и тяжелая, которая потребует строгой дисциплины и большой самоотдачи.

    А дальше выбор за вами.

    PS: я живу в провинции, разрабатываю приложения, производительность которых очень важна. Мне постоянно нужен олимпиадный опыт. Так что все холивары по поводу, что работодателю человек с такой уймой знаний не нужен — не принимаются, т.к. нужен, просто скорее всего вы не там искали.
    Даже наоборот, найти адекватных разработчиков тут в провинции безумно сложно.
    Ответ написан
    Комментировать
  • CMS на ZendFramework?

    png
    @png
    Недавно, хотел сократить время разработки при помощи CMF. Делаем тоже на Zend.
    Перебрал штук 10 разных. Смотрел код так, чтобы он был прилично написан.
    Очень понравилась вот эта разработка. habrahabr.ru/blogs/zend_framework/84313/
    и ещё одна (ссылку сейчас не вспомню, т.к. из дома)

    Для моих задач проще по простому накидать каркас самому. Тащить ворох лишних библ, а потом за них отвечать, как-то не захотелось.

    Если вас заставили использовать ZF, но это не значит, что нужно использовать только ZF. Если какие-то компоненты вас не устраивают, то проще сменить их на сторонние…

    Например, если вас не устраивает Zend_Db — Прикрутите Doctrine
    Для рассылки почты, например, я использую swiftMail. Получилось проще, чем решение Zend_Mail + Zend_Queue
    и так далее…

    Хотя в Zend есть не плохие модули, а есть такие, код которых у меня вызывает содрогание.
    Короче, тут нужен здоровый прагматизм.

    PS. Посмотрите идеологию Symfony 2) Очень симпатично.

    PS2: Zend_Tool + всякие кодогенераторы тоже могут быть полезны, т.к. ускоряют разработку.
    Ответ написан
  • Заставить плагин RedMine перезагружаться в development_env?

    png
    @png
    в каждый класс нужно добавить примесь unloadable

    Например, тут: www.redmine.org/projects/redmine/wiki/Plugin_Tutorial

    class PollsController < ApplicationController
      unloadable
      # ....
    end
    
    Ответ написан
    3 комментария
  • [ Symfony 2 ] Объедененные формы и данные по-умолчанию

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

    идею описывал тут

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