• Код ревью или что не так с моим тестовым заданием?

    @heahoh
    Full stackoverflow developer
    Мнение относительно оформления, так как скилзами в java не обладаю, - код, конечно, пишется для машины, и ей без разницы, как он написан - лишь бы работал, но читать человеку и разбираться для сопровождения и расширения функционала - человеку.

    adapter/TaskListAdapter.java
    public boolean areItemsTheSame(Task item1, Task item2) {
                    return !(item1 == null || item2 == null) && item1.getId() == item2.getId();
                }

    Если не (item1 или item2 равны null) и id итемов одинаковы...
    Как я понимаю, если в метод передать item1 = null, то у вас будет nullPointerException или что-то подобное?
    Почему бы не изменить конструкцию на item1 != null && item2 != null && item1.getId() == item2.getId(), мне кажется будет читабельней. Возможно покажется глупым использовать длинные названия переменных, вроде originalTask и taskToCompare, но они явно лучше, чем item1 и item2, да и автокомплит IDE поможет в наборе названий

    Тернарный оператор внутри if пугает также, как и if без открытия скобок
    model/Task.java
    if (ActualEndDate != null ? !ActualEndDate.equals(task.ActualEndDate) : task.ActualEndDate != null)
                return false;

    Поясню - замыленный глаз, конец рабочего дня и голова совсем не варит. Нужно срочно закрыть таску - открываем код и видим необходимый участок, который собираемся закомментить
    ...
    if (длинное условие)
                doSomething();
    doAnotherThing();
    ...


    ...
    if (длинное условие)
    //            doSomething();
    doAnotherThing();
    ...

    и теперь наш doAnotherThink выполняется не всегда, а лишь при выполнении условия.
    Вот пример такой ошибки в реальном проекте (пункт "Неправильно закомментированная строка")

    Ну и
    result = 31 * result;
    Где 31 используется несколько раз. По мне удобней завести локальную переменную с адекватным значению названием.

    Почитайте "Совершенный Код" Макконнелла - шикарнейшая книга для разработчиков
    Ответ написан
    2 комментария
  • Код ревью или что не так с моим тестовым заданием?

    @dmitryKovalskiy
    программист средней руки
    Лично у меня код вида
    setupList();
    showListProgress(true);
    getTaskList();

    ассоциируется с процедурным программированием. Java это насколько я знаю ООП. А тут ни паттернов, ничего. Покрыть тестами такой код я не знаю как. Наверняка внутри идет обращение к параметрам окружения или глобальным переменным, мокировать которые просто праздник.
    Разделения логики на слои я тут не вижу и внутри методов есть и получение данных и настройки отображения, однако на мой взгляд это проблема не сколько программиста, сколько человека, поставившего задачу за 5 часов написать целое приложение. На мой взгляд лучше бы или дал сутки или дал конкретные задачи на алгоритмы.

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

    @vashaaa
    Юх с горы
    А жить то когда ?) но если вам таки нужно, то хватит дисциплины и клочка бумаги со списком дел на день, составленым вечером. С разделением, на очень важные и вторичные. Тогда выстроете себе минимум работы на день (первичные дела) и максимум (первичные +вторичные). И будете максимально продуктивны. Это разделение нужно так как не всегда выходит так как хочется. Все таки жизнь) удачи.
    Ответ написан
    Комментировать
  • Как подготовиться к закону Яровой?

    Vapaamies
    @Vapaamies
    Разработчик будущей ОС для ПК размером 250 МБ
    Тушенку, мыло, спички и керосин покупайте исключительно в зарубежных странах. Там же выройте себе землянку. Если есть возможность, проведите туда интернет с этими вашим VPN.
    Ответ написан
    Комментировать
  • Как подготовиться к закону Яровой?

    @nirvimel
    1. Купите недорогой VPS (от $15/год, можно даже дешевле) и поднимите на нем личный VPN. В Сети есть куча подробных руководств как это делается. Только не надо говорить, что у вас нет на это денег, интернетом вы же не бесплатно пользуетесь. Просто примите это как небольшую дополнительную плату за интернет за ваш спокойный сон.
    2. Работая через VPN (обязательно), заведите себе новый почтовый ящик на зарубежном сервере у компании, у которой нет никакого бизнеса и любых коммерческих интересов в РФ. Пусть это будет не мажорный гигант индустрии, а скромная компания, малоизвестная в РФ. Главное - это наличие SSL в веб-интерфейсе и в IMAP, в остальном почта есть почта, она просто работает, и этого достаточно.
    3. Работая через VPN, заведите себе новый аккаунт в vk facebook и/или google (если вы неспособны полностью отказаться от использования социалок). При регистрации указывайте место проживания подальше от РФ. Учитывайте, что все гиганты индустрии, имеющие большой бизнес в РФ, полностью сотрудничает с ГБ, но аккаунты нерезидентов, зарегистрированные и посещаемые с зарубежных IP, они не станут сливать по умолчанию (но по первому запросу сольют мгновенно). Так что забудьте про любые приваты в социалках, ведите все общение так, как будто все это читает весь ваш квартал и все те, кому бы вам меньше всего хотелось это показывать. Для приватного общения пользуйтесь только безопасной почтой (пункт 2) и защищенными чатами, на telegram jabber на зарубежных серверах. Все это касается только тех, кто не может окончательно завязать с пагубной зависимостью от соц.сетей. Очевидно, наиболее безопасным (и полезным для здоровья) вариантом является полный отказ от социалок.
    4. Не вбрасывайте в старые ящики и соц.аккаунты адреса и ссылки на новые чистые, не указывайте новые адреса в любых исходящих и старайтесь, чтобы они не попали во входящие. Помните, что в любой социалке и любом веб-интерфейсе почты (сотрудничающей) кнопка "удалить" скрывает удаляемое только от вас самих и не более того.
    5. (Самый неприятный пункт) Забудьте про vk, mail.ru и российские gmail и facebook. - КАК? - Так! Я понимаю, что это не легко, что они давно стали частью вашей жизни. Но это придется сделать! Поговорите сами с собой, спросите себя что для вас важнее: ваша личная безопасность, спокойствие и крепкий сон или старые привычки, которыми вы опутаны, и которые не хотят отпускать вас? Учтите, что продолжая пользоваться местными социалками (и сотрудничающими иностранными), вы продолжаете каждый день генерировать на себя тонны компромата, который может обернуться против вас в самый неожиданный момент самым неприятным образом. Проявляя активность в своих старых аккаунтах, вы не даете им "протухнуть" и не даете даже формального повода добрым компаниям снести их через пол года, после истечения отведенного законом срока хранения (как известно, vk не ограничивается минимальным сроком хранения, а хранит все метаданные и текст практически вечно за исключением видео/аудио).
    Ответ написан
    26 комментариев
  • Как подготовиться к закону Яровой?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Параноикам не стоит пользоваться компом, телефоном уже давно... Например, все разговоры по телефонах пишутся ещё с 90-х годов...
    Ответ написан
  • Стоит ли продолжать изучать Android develop?

    artemgapchenko
    @artemgapchenko
    Здравствуйте, как многие знают, Google готовит замену Android

    Откуда вы всё это берёте? Есть проект на Гитхабе с таким вот README:

    Pink + Purple == Fuchsia (a new Operating System)

    Всё. Ни про замену Android, ни про предназначение проекта ничего не сказано. К проекту подключено 3 (три) человека, развивается он без году неделя, никаких официальных анонсов не было.
    Прекращайте читать советские газеты перед обедом и вместо первоисточников и не занимайтесь домыслами того, чего нет. Изучайте Android и выбросите Фуксию из головы на ближайшие года два, пока не станет понятно, что это такое и кому это нужно.
    Ответ написан
    Комментировать
  • С чего начать обучение для фриланса?

    kumaxim
    @kumaxim
    Web-программист
    И так, с чего начать обучение:
    1.Самый низкий порог вхождения у языка PHP. Начинайте именно с него
    2.Изучите популярные CMS: WP, DLE, Joomla и т.д. Очень много заказов есть типа "Создать сайт", причем экзотики в 2 из 3 проектах не нужно. Здесь минус в том, что школоты тут полно и цену они сбивают весьма сильно...
    3.Далее категория заказов "А можно ли сделать вот так". Сводится все это к разработке/переработке модулей на все тех же CMS. Нужно учить PHP + API этих самых CMS. Возьмите один движок и копайте по нему в эту область, не рвитесь сразу за всеми. Порог вхождения тут тоже не велик, но здесь больше голодные студенты обитают
    4.Когда перерастете уровень дополнений/модулей, переходите к фреймворкам. Сейчас самый популярный Yii. Фреймворк позволяет Вам делать какие-то уникальные приложения, которые достаточно тяжело реализовать на готовых системах. Здесь ценник по существеннее, чем в первых двух, т.к. школота в силу своих умственных способностей сюда влезть не может.

    Теперь расскажу как вообще этому обучаться на своем примере. Я делаю так:
    1.Открываю тоненькую книжечку по языку(листов 100, не более), смотрю на основы
    2.Делаю примеры из этой книжке в IDE/блокноте. Это дает мне определенную базу
    3.Далее у меня есть список из примерно 20 задач(любую методичку по программированию откройте), которые я всегда делаю на новом языке. Это позволяет мне "привыкнуть" к новому коду и начать изучать стандартную библиотеку языка
    4.Затем я начинаю брать низкобюджетные заказы на фрилансе по этому языку
    5.После этого начинаю учить самый популярный фреймворк языка, опять же на низкобюджетных проектах.
    6.Сделать с 12-15 проектов я могу уже браться за что-то более менее серьезное с почасовой оплатой на фултайме.

    Вот это мой путь. По срокам - базу я себе нарабатываю за 1,5-2 месяца, на это время у Вас должна быть какая-то "подушка".

    P.S. надеюсь помог. ))
    Ответ написан
    7 комментариев
  • С чего начать обучение для фриланса?

    ndr334
    @ndr334
    Веб-мастер
    Я бы начал с изучения английского. На российском рынке фриланса положение работников не завидное, а иногда просто унизительное. Лучше всего самостоятельно ищите возможности, старайтесь быть центром силы, а не периферийным звеном большой цепи.
    Ответ написан
    Комментировать
  • Путь фрилансера. Как найти первый заказ?

    buttersmai
    @buttersmai
    Пишу свое мнение про Odesk и Elance, ибо работаю на них.
    1. Насчет "наладить поток заказов"-важно знать, что Вы вкладываете в это понятие. Ситуация "заказчики стучатся сами, а я только выбираю и программирую", как мне кажется, не совсем возможна. Так что готовьтесь, что часть времени Вы будете продавать себя. С другой стороны, если продадите на долгосрочный проект, то счастье Вам обеспечено.

    2. По поводу первых заказов: я брал первый заказ за 5$(за весь проект) и делал его по-максимуму, чтобы у заказчика и в мыслях не было поставить рейтинг ниже 5*.
    Первый отзыв-важный этап. После того, как добились его, начинайте просить более-менее сносные цены. На втором проекте я уже работал по 10$/час.
    Все Ваши рейты потом будут видны в профиле, поэтому чем больше платят сейчас-тем выше Вас ценят потом. Я еще как-то просил одного из первых заказчиков вместо 5 часов по 15$/час посчитать 3 часа по 25$/час(я заранее оговорил, что работы на 5 часов). Сумма для заказчика одна и та же, а у Вас в профиле уже хороший рейт светится и люди видят, что Вам уже платили такие деньги

    3. По поводу "стоит ли изучать в процессе то, что потребуется для выполнения".
    Я как-то встречал на хабре статью про фриланс, где писали что-то вроде "если Вы чего-то не знаете, но изучаете в процессе, то вы рискуете деньгами и временем заказчика". На мой взгляд, это не так. Вы не дворником работаете, в каждой задаче, скорее всего, придется изучать что-то новое: шаблонные заказы бывают, но вряд ли это про программирование. Так что, если уверены, что способны что-то изучить-смело берите заказ.

    4. По-моему, Вы зря используете "опытные фрилансеры" и "армия индусов" в одном предложении. Я месяц назад видел заказ, где было английским по-белому написано "only for native Russian speakers", где оставили биды один русский и два индуса.

    Чтобы конкурировать с ними, многие советуют оставлять заявку в числе первых. Для этого стоит организовать работу так, чтобы сразу видеть новые заявки по нужным ключевым словам в одном месте. Я для этого использую lancemonitor.com (возможно, это мини-PR, но я безумно благодарен автору за сэкономленное время). Сервис отправляет проекты по нужным Вам ключевикам на почту по мере их поступления: все собрано в одном месте и позволяет быстро реагировать

    5. Составляйте cover letter грамотно, под каждого заказчика, стараясь показать, что Вы вникли в проект. Можно задать 1-2 вопроса.
    Если на Odesk я первый проект делал за 5$, то на Elance первый был за 18$/час. Так что при хорошем профиле и подаче себя можно и без отзывов получить нормальный первый проект.
    Ответ написан
    Комментировать
  • Как в корпус настольного компьютера крепить SSD?

    Bright
    @Bright
    Искал по всему городу салазки с 2.5" на 3.5"… после двух недель безрезультатного поиска плюнул и прикрутил как есть, только с одного края =/
    Ответ написан
    Комментировать