Ответы пользователя по тегу Программирование
  • Ноутбук программиста: Lenovo IdeaPad Z510A VS ASUS N550JV

    serso
    @serso

    Только месяц назад стоял перед таким выбором (за исключением, пожалуй, того что я не пользуюсь внешним монитором). В итоге провёл довольно много времени выбирая и остановился на таком ноутбуке: http://www.dell.com/us/p/inspiron-15r-se-7520/pd
    Плюсы:
    1. Экран - 15 дюймов, матовый, 1920x1080
    2. Вместо DVD был успешно установлен SSD
    3. i7
    4. Дискретная карта - иногда пиграть в игры
    5. Linux работает из коробки (без дискретной видео карты)
    6. 4 USB слота (USB 3.0)
    Минусы:
    1. Windows 8
    2. Драйвера для видеокарты (в итоге удалось настроить только под Windows, под Linux - нет)
    3. Вес - более двух кг (для меня не критично)

    Пока что всем доволен, за исключением драйверов для видеокарты и Windows 8 (в основном, из-за того что сломалась поддержка некоторых игр, например, Fifa 13). Но т.к. я пользуюсь Linux 95% времени - данные минусы меня не очень напрягают.

    Ответ написан
    Комментировать
  • Как правильно организовать вывод сообщения об ошибке в Java-программе?

    serso
    @serso
    Всё правильно делаете. Только если у вас приложение из консоли запускается я бы предложил использовать Commons CLI для парсинга входных аргументов.
    Не вижу проблемы валидации в конструкторе (например), но если очень хочется изменить — введите статичный фактори метод, в который помесьтите всю валидацию, а конструктор сделайте приватным.

    Я бы, наверное, сделал бы так: Input в виде Commons CLI Options, далее преобразование его в класс-структуру настройки (не зависимой от CLI, в случае режима embedded такде заполнение этой структуры) без валидации, статичный фактори метод с этой настройкой, где происходит вся валидации и выставление параметров бизнес объекта.
    Ответ написан
    Комментировать
  • Как правильно писать юнит-тест для класса работающего с файлом?

    serso
    @serso
    Нужно отделить логику чтения файла от логики его обработки — мало ли откуда данные могут придти — из БД, по сети, в качестве параметра метода.
    Т.е. обработчик должен на входе принимать строку (а ещё лучше какой-нибудь поток байт/символов для последовательного чтения).
    В этом случае юнит-тестирование сведётся к тестированию только логики процессинга, а, следовательно, данные могут быть просто зашиты в файл теста.
    Если нужно тестирование ещё и чтения файла — отдельный юнит тест (но т.к. скорее всего вы используете какой-нибудь стандартный API вам это не потребуется).
    Ответ написан
    6 комментариев
  • Как правильно писать функции с префиксом get?

    serso
    @serso
    Не очень понятно, что это за объект. Допустим, наш объект — класс приложения. При открытие дополнительного окна нужно прочитать большой файл, например, таблицу CSV. При этом, понятно, что при старте приложения грузить этот файл не надо (потому как дополнительное окно может и не быть открыто), но в случае когда мы его хотя бы один раз прочитали, читать второй раз уже не хочется. В таком случае можно использовать паттерн lazy loading:

    public class Application {
    
        private CsvData csvData = null;
    
        public CsvData getCsvData() {
            if ( csvData == null ) {
                csvData = readCsvData();
            }
            return csvData;
        }
    
        private CsvData readCsvData() {
            // read file from the disk, do not forget about synchronization
            // ...
            return csvData;
        }
    }
    
    Ответ написан
  • In app billing в Android?

    serso
    @serso
    По статистике 50% телефонов сейчас на Android 2.3.x, так что поддерживать однозначно нужно.
    Рекомендую использовать какую-нибудь библиотеку, т.к. In-App Purchasing описан довольно плохо в доках от Гугла. Я работал с Android Billing Library, в принципе — не плохо, хотя сам дизайн библиотеки не очень, поэтому я решил её доработать в своём репозитарии (см. billing)
    Ответ написан
  • Не могли бы вы посоветовать источники (книги, сайты) с советами по качественному написанию кода ?

    serso
    @serso
    1. Лучше всего — код на ревью, можно даже и на хабр в вопросы.
    Почему? Потому что даже прочитав умных книжек и статей можно накосячить (например, не правильно поняв что-то).

    2. Также можно посмотреть как реализованы аналогичные приложения по функционалу (чем популярнее, тем лучше) (Естественно, если код доступен)
    Ответ написан
    Комментировать
  • Может, кто-то видел универсальную структуру географических объектов?

    serso
    @serso
    Если знаете английский, то на stackoverflow похожий вопрос: link

    Вот линк на то как с этим всем работает почта: link
    Ответ написан
    Комментировать