All streams
Search
Write a publication
Pull to refresh
-1
0
Агафонов Олег @JayDi

Программист

Send message
У JavaFX проблемы с дистрибуцией и поддержкой. До относительно недавнего времени была только реализация JavaFX от Oracle (которая включалась в обычную поставку джавы), поэтому многие дистрибутивы линукса с OpenJDK вместо Oracle тупо шли лесом. Собственно, и сейчас ситуация похожа, т.к. OpenFX необходимо устанавливать отдельно в дополнение к OpenJDK.
библиотеки с коллбэками, которые исполняются в непредсказуемых среда

Это уже отличный шанс подумать об автоматическом тестировании в разных окружениях. Благо очень многие CI и другие сервисы выделяют бесплатные квоты для опенсорсных проектов. Даже у гитхаба есть свои actions. Можно настроить и проверить любые ситуации, автоматизировать рутинные задачи и тем самым облегчить поддержку. Еще и такой важный опыт прибавится по работе со всеми этими инструментами.
Являясь мейнтейнером крупного опенсорс проекта (карточная онлайн игра, MTG) — я положительно отношусь к обратной связи от пользователей. Количество переходит в качество.

И если у пользователей регулярно возникают проблемы, то это проблема не в пользователях, а в инструментах — их надо исправить так, чтобы с ними справились обычные люди. Например, вместо вывода текста ошибки — выводить инструкцию, как решить проблему самостоятельно.
>> данные находятся под угрозой утечки.

Наличие исходных кодов серверной и клиентской частей никак не связано с компрометацией и утечками данных. В статье нет ни единого доказательства этого.

Обвинения аналогичны тому, как если бы все сайты на wordpress были скомпрометированы только на том основании, что исходники движка доступны всем желающим.

Единственное, к чему можно было бы придраться — наличие файла конфигурации с внутренними серверами и доступами. Проверить актуальность и работоспособность которых не представляется возможным (либо автор умолчал про это).
Вроде бы и полезные вещи и всё на удивление по делу (кроме, пожалуй, собственности на продукт — этот вопрос даже не обсуждается, она всегда за заказчиком, причем на уровне законодательства, т.е. в договоре может даже не упоминаться). А вот со сроками и оценками задач внутри статьи как раз беда какая-то.

Цитата 1: сотня отчетов в системе… Разработка отчета обычно занимает не более нескольких минут.

Вот как разработка отчета может занять несколько минут, когда на одно только общение и уточнение деталей может уйти десятки минут?! Не говоря уже про тестовые данные и проверку этого самого отчета. Ни разу не видел ни одного конструктора отчета, который «за несколько минут» что-то полезное может сделать.

Цитата 2: Инструкция в простом случае займет у вас 3-4 часа работы

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

P.S. В статье нет самого главного — не гонитесь за заказами и не снижайте бюджеты ради этого (и уж тем более не пытайтесь уложиться в те суммы, что указаны в заявке на каком-нибудь фрилансе — типичная ошибка новичков). Вы пришли зарабатывать на жизнь, а не выживать. Давайте реальную оценку сроков и стоимости, исходя из своих ставок. Пускай заказчик и выберет «самого дешевого» — но он все-равно вернется, уже за нормальным специалистом и с горьким опытом «сэкономить».
Все исправления для статьи можно посмотреть в этом PR. Так же дополнено:

Предупреждение N7
Код корректный и лишний else не имеет смысла. Там просто немного сломанная логика в самом коде. Оба вызова для selectUser используют поиск пользователя по имени. В первый раз происходит попытка создания новой сессии. Если она успешна (такого пользователя нет онлайн) — возвращается сессия. Если же она провалилась (такой пользователь уже онлайн) — возвращается пустое значение и запускается дополнительная проверка (можно ли этого пользователя переподключить). Соответственно, во втором вызове поиск по имени будет всегда возвращать результат, и else не нужен.
Спасибо за проделанную работу, как разработчик и мейнтейнер данного проекта обязательно изучу и исправлю найденные проблемы. С онлайн-отчетами Sonar на этом же проекте можно ознакомиться тут.

Пара замечаний по найденным ошибкам:

Предупреждение номер 2
Одинаковый код в обеих ветках образовался в результате рефакторинга, а не копипаста — если до этого для LOOK_AT_FACE_DOWN применялась специальная логика, то после изменения она стала общей для всех.

Предупреждение номер 4
Ошибка образовалась в результате оптимизации, когда был добавлен кеш в виде savedSpecialRares, куда и должны были сохраняться заранее подготовленные списки карт из базы. Т.е. данный код когда-то работал корректно, но после оптимизации сломался.

Остальные всё по делу.

P.S. Основная сложность данного проекта — не все карты или режимы игры популярны, поэтому многие вещи могут годами оставаться незамеченными (без баг-репортов от пользователей). Поэтому мы стараемся, по возможности, добавлять побольше юнит-тестов.
Было бы интересно услышать/увидеть про тестирование сериализации от jboss:
serialization.jboss.org

В отличие от стандартной джавы — он поддерживает расширенный список классов без каких-либо ограничений.
Речь про русскоязычный сегмент, где у фл-ру нет альтернатив в силу монополизации рынка. Не всем комфортно работать с иностранными заказчиками.
Дело не в тупости. Фл-ру прежде все ориентированы на заказчиков. А тем нужны профильные специалисты, а не мастера на все руки или веб-студии.

Что-то мне подсказывает, что те же запреты на бесплатные аккаунты и конские цены — это целенаправленная политика по отсеиванию «студентов» и неквалифицированных исполнителей. И это работает — фл-ру получает с каждым годом все бОльшую прибыль, при этом сторонние площадки за столько лет «войны» так и не смогли получать хотя бы заметную долю клиентов.

Занимаюсь разработкой (не веб) — на фл-ру заказов на порядок больше по специализации, чем на любых других русскоязычных ресурсах (возможно, даже вместе взятых). Этого монстра просто так не скинуть с пьедестала.
Стоит обратить внимание, что с последним обнавлением Oracle закрыл JAVA-дистрибутивы от свободного скачивания в автоматическом режиме, скрыв их за страницей регистрации (раньше регистрация была нужна только для скачивания старых версий, сейчас же — и для последних тоже). В следствие чего часть открытого ПО перестала работать (ставиться), т.к. закачка Java поломалась.

Пример:
github.com/magefree/mage/issues/5723
Получил shadowban за комментарий, содержащий слова «fake news» (просто часть предложения, даже ссылок не было) — сразу после публикации он был скрыт от всех. Следующие мои комментарии показывались.
Сейчас многие развлекательные продукты (например, практически все онлайн-игры) распространяются со встроенными «качалками» как раз по протоколу bittorrent. Большинство пользователей даже не вкурсе, что там под капотом. Возможно, благодаря им такая высокая статистика.
Из другой презентации — специалисты АНБ активно вскрывают почтовые отправления и бандероли, чтобы получать физический доступ к тем или иным гаджетам и оборудованию (уже более 100 000 шт).
Для Oracle использовались встроенные средства, которые анализировали работу сервера и выдавали подробные отчеты по проблемным местам как в запросах и структурах данных, так и в настройках самого сервера. После чего проверялись и изменялись соответствующие SQL-запросы. Но все это делалось только тогда, когда на сервере появлялись какие-либо проблемы, либо когда пользователи жаловались на медленную работу приложений.

Для MySQL использовался MONyog, который подключался к серверу, собирал статистику по его работе и составлял отчеты с рекомендациями по оптимизации.
Разработка такой CRM-системы стоит 10-50к рублей, и рассчитана она для начинающих, т.е. тех, кто только задумывается об автоматизации своих бизнес-процессов (чаще всего какого-то одного направления или задачи). Со временем у руководства и сотрудников придет опыт и желания, вырастит аппетит — вот тогда-то оно и задумывается о более серьезных решениях-- покупке стороннего продукта, доработке существующего или разработки нового.
Мне кажется, ситуация в ровном счете наоборот — обращаться к фрилансерам для разработки специфичной CRM следует небольшим компаниям и индивидуальным предпринимателям с кол-вом сотрудников до 15-30. На большее у фрилансера просто не хватит сил, и потребуется работа целой команды.

Могу сказать по личному опыту (успешная разработка и внедрение двух десятков проектов «самописных» систем), что за месяц работ можно сделать отличное приложение, с современным дизайном и приличным количеством возможностей. Да, этого будет недостаточно для полноценной аналитики (огромное количество готовых отчетов прямо из коробки — киллер-фича покупных приложений). Но можно решить, увеличив бюджет и сроки, дорабатывая уже в процессе использования.
Очень понравился обзор бесплатных и платных CRM в ваших статьях. Хотелось обратить внимание на третий вариант — разработка своей собственной системы с помощью фриланса (пишется либо с нуля, либо, скорее всего, на базе ранее сделанной).

По цене это вышло бы даже дешевле покупки полных лицензий на все рабочие места (в самописной CRM нет ограничений на количество пользователей). Более того, можно было бы сделать именно то, что нужно вашей компании.

Единственные недостатки — это сроки ожидания (от 1 месяца и больше) и отсутствие 100-процентных гарантий за итоговый результат (нужно будет внимательно выбирать исполнителей и составлять тех задание).
Из практики разработки CRM — как ни странно, но таких многофакторных отчетов не встречалось. Всегда требовались либо годовые/квартальные, либо за определенные дни/периоды.

В первом случае было два поля: год и номер квартала/месяца.

Во втором случае делалось тоже два поля: дата начала и дата окончания периода. Но рядом ставилась небольшая кнопка для быстрого выбора из выпадающего списка самых часто используемых дат с последующим автозаполнением (например, «текущий месяц», «прошлый месяц», «начало недели», «конец недели» и т.п.).
Cargo-Bot для iOS — отличная штука.

Information

Rating
Does not participate
Location
Сызрань, Самарская обл., Россия
Registered
Activity