Pull to refresh

Comments 20

REST server;
Web UI, который не более чем еще один клиент для REST server;
DB;
plugins for browsers (сейчас пока сделан только для православного Safari);

Здесь бы из английских слов оставить только REST и Safari
может лучше выложить ссылку на github?
можно клонировать, изменять и прямо пушить?
А в чем командность разработки заключается? то что проект форкнут несколько человек и каждый зальет свое решение? Имхо для реальной командной разработки нужен проект посерьезней, а это в качестве разминки или проверки на хоть какой то опыт и знания.
Да, думаю Вы правы, командной разработки тут не будет =(
Теоретический вопрос: а на пул-реквесты будет даваться нормальный фидбэк типа ревьюрирования кода?
На Java часть — да. На остальное по возможности, но тоже скорее всего да.
Статьи это хорошо, но не лучше бы было сделать курс на хекслете, как было недавно для objective-c, чтобы там были уроки, тесты и задания, которые проверяются и выставляются балы?
Я тоже думаю начать там курс, уже ОЧЕНЬ давно, однако там для курса необходимо довольно много времени, а самое главное постоянно выделять это время. Как только буду видеть что есть возможность, курс появится, надеюсь это будет скоро.
Код откровенно слабый. В изобилии ошибки в словах (типа FILED вместо FIELD, например). Есть необоснованные вещи в плане проектирования, если можно так выразиться. Есть серьезные стилистические ошибки.

Из того, что бросилось в глаза:
  • использование имен стандартных имен классов: URL, который запутает того, кто будет читать этот код.
  • использование интерфейса, как хранилища констант
  • неоправданное использование DBCursor (достаточно и более понятно использование findOne):
    if (!c.hasNext())
      return null;
    DBObject object = c.next();
    

  • постоянная сериализация/десериализация статистики вместо хранения её в виде объекта (тогда можно использовать, например, атомарные операции обновления документов в MongoDB)
  • использование в concurrent-окружении non-threadsafe класса RandomString
  • абсолютно невнятные операция обновления статистики: во-первых она не атомарна (соответственно в статистике очень быстро появятся ошибки), во-вторых неоптимальна и запутана, в-третьих — структура данных статистики неприменима для каких либо разумных вариантов агрегации на стороне MongoDB


Давайте посмотрим правде в глаза. Вам стоит самому научиться программировать хоть чуть-чуть. И только потом пытаться браться за обучение кого-либо.

Надеюсь, эта здоровая критика приведет Вас к исправлению ошибок и дальнейшему развитию.
Я же предупреждал, код учебный. Буду уповать на то что сюда слушатели не подсмотрят =). Хорошо что хоть не все указали и еще многое пока осталось за кадром.

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

Насчёт того, что указал не всё — не ставил такой задачи. Просто то, что бросилось в глаза больше всего, посмотрев три класса и один интерфейс.
Соглашусь с тем что мне действительно стоило упомянуть это более точно в статье. Однако не нравится мотивировка этого необходимостью произвести позитивное впечатление на работодателя или опасностью произвести негативное впечатление.
эм. а в качестве хранилища констант что ещё использовать? абстрактный класс?
Класс с private конструктором и private static final полями.

Это довольно известный антипаттерн. См., например, Joshua Bloch «Effective Java» (2nd ed). Или хотя бы педивикию.
писать больше) а я «ленивый». технически разницы между интерфейсов и «приватным» классом разницы не вижу. главное не поддаваться желанию заимплиментить этот интерфейс в класс, использующий нужные константы.

или таки есть отличия на техническом слое?
Вы же знаете прописную истину, любой программист, открывший чужой код найдет множество ошибок и неточностей (особенно если он поставил себе такую цель). Но кто мешает учится на своих же ошибках? Мне кажется, главной задачей этого поста — предоставить полигон для программистов не имеющих должного опыта. Все программисты когда-нибудь были джуниорами. И ведь автор этого поста не пытается же продать Вам свое детище.
Sign up to leave a comment.

Articles