Ответы пользователя по тегу Java
  • Что такое "call back interface"?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Для чего?

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

    У тебя две стратегии:
    1. Каждые 5 мин. подходить в регистратуру "А справка на фамилию Пупкина готова?"
    2. Оставить визитную карточку с телефоном на Пупкина и попросить позвонить, как будет готова справка.

    Какая стратегия более удобная? ;)

    Это принцип "Не звоните нам, мы сами вам позвоним".

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

    Код, который вызывают это callback - "Обратный вызов". Некоторые условия - это событие.

    В примере выше callback-ом является Пупкин, а событием является "справка готова".
    Ответ написан
    Комментировать
  • Как правильно указать тип ответа для REST API?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Я бы предпочел второй способ. Указывание типа ответа вполне логично. Явное лучше чем неявное.
    Еще Вы можете без параметров, а прямо в endpoint-е от URI:

    На псевдо-питоне:
    @app.route('employes/<uiid:string>/format/<type:string>')
    def get_empoyes(uuid, type):
       if type == 'json':
         pass
       elif type== 'xml':
         pass
       elif type == binary:
         pass
       else:
         abort(404)


    Также отмечу, что ответ лучше всегда сопровождать с content-type. А то некоторые забывают и приходится писать детекторы формата ;(((

    P.S.:
    По выбору имен. Имя 'type' ни о чем не говорит. Тип чего? Ответа? А может тип служащего? Тип автомобиля на котором ездит служащий?

    P.S. #2:
    Рекомендую почитать статью-перевод на хабре "RESTful API для сервера – делаем правильно" и книгу, которую привели в конце части 2
    Ответ написан
    Комментировать
  • Каковы Возрастные ограничения в программировании?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    olejoman : 18+, а до 18 надо учить математику в школе и хорошо учить. Также налегать на улучшение английского.
    Ответ написан
    Комментировать
  • Какие цели преследует Dependency Injection?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    DI это способ создать интерфейсы там, где их не было ранее, но они вдруг понадобились сейчас. Интерфейсы вводятся не просто так, а для решения какой-либо задачи. Отойдя от программирования и взяв в качестве примера ситуацию с аппаратным обеспеченим, то мы поймем, что люди очень сильно выиграли когда решили разделить вычислительные средства на материнская плата, ЦПУ, ОЗУ, Жесткий диск и др. Да, они усложнили введя интерфейсы, но при этом повысилось удобство эксплуатации и возрасла скорость разработки. Скорость изготовления частей возрасло за счет того что отдельный компонент изготовить проще, чем целую систему! Более того компонент может быть с разными характеристиками, ценою и изготавливаться многими компаниями на различных производственных мощностях. Возвращаясь к DI : программист выигрывает за счет того что теперь значительно легко установить новый компонент. К примеру дав интерфейс программисту на стороне, дав ему модульные тесты(в качестве "живого" ТЗ) вы получаете дополнительное время, т.к. пока пилится компонент стороним программером Вы можете пилить другую часть системы, а принять работу можно по прохождению модульных тестов и быть уверенным, что это то что Вы хотели, если конечно хорошо продумали модульные тесты ;)
    Ответ написан
    Комментировать
  • Книга по Java, стоит ли её купить?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Не надо ничего покупать.
    1. На YouTube есть видео-лекции по Java
    2. После этого справочник и очень много говнокодить
    Ответ написан
  • Как узнать в каком месте csv файла ошибка?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Варианты решений:
    1. Если программа не Ваша, то поищете csv-linter
    2. Если программа Ваша, то примените log.debug(....)
    3. Если программа не Ваша, то на пишите скрипт lint-ер сами.

    Про нумеровано в порядке предпринимаемых действий.
    Это мое мнение, но думаю есть решение по-лучше!
    Ответ написан
    Комментировать
  • Польза олимпиадного программирования, миф или реальность?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Прежде чем браться за решение по выбору между чем-то одним и чем-то другим я бы рекомендовал задаваться вопросом: "А есть ли еще более важные вещи?". Я к тому что Вы сейчас можете выбирать между теорией алгоритмов и технологиями, но при этом вдруг есть более важный навык который прокачан не так как хотелось. Рискну предположить, вдруг Вам надо прокачать мега-навык для любого программера : "Английский на уровне чтения тех.летературы". Если я угадал, то лучше потратьте время на него!
    Ответ написан
    Комментировать
  • Путь программиста новичка: Паскаль>C>Java?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    В виду того что образования нет и как вывод опыта нет, то Вы не можете ясно сказать себе "Я хочу заниматься вот именно ..... хренью" На это требуется время и опыт. Что делать? Как ни странно, но только пробовать! Запилите несколько небольших проектов из каждого направления. После этого вопросы будут более конкретны
    Ответ написан
    Комментировать
  • Вы находили ошибки в книге "Философия Java" ("Thinking in Java")?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вы о чем? О результате автора или о переводе? Если о последнем, то не удивительно
    Ответ написан
    Комментировать
  • Для чего нужен метод main?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    В операционной системе есть часть системного кода целью которой является "Запуск программы на выполнение". Когда Вы "жахаете" дважды по exe-файлу эта часть создает процесс, создает первичный поток, проецирует куски данных из вашего exe-файла на регионы памяти в процесс и др. не менее важные процессы.

    Когда сис.загрузчик хочет найти и передать управление первичному потоку, он должен ответить на вопрос "А где искать машинный код для первичного потока?". Он, сис.загручик, знает как устроен формат exe-файла и отыскивает значение указателя где расположен код, откуда следует начать работу программы записанной в exe-файле. Для exe-файлов смотри хидер winnt.h в IMAGE_OPTIONAL_HEADER поле AddressOfEntryPoint.

    В каждом, современном исполняемом файле, как правило, две точки входа. Одна из них является ничем иным "стартовым кодом", иногда именуемая runtime-code или "стабом". Эта часть генерируется компилятором и достаточно часто повторяется для всех файлов генерируемых компилятором. А другая часть "пользовательская", вот это пользовательская и есть Ваша main(). Но ее наименование можно по-другому настроить(см. документацию к Вашему компилятору).

    Что рантайм-код, что Ваша main() это ни что иное как функции обратного вызова. Их вызывает сам сис.загрузчик. После того как рантайм-код записан в файл, указатель на него записывается в AddressOfEntryPoint(см.выше), в процессе работы в недрах сгенерированного рантайм-кода есть переход на вашу main().
    Ответ написан
    Комментировать
  • Книги по программированию под Android?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А что лучше читать?

    Вот это:
    Автор: Рето Майер, "Android 2. Программирование приложений для планшетных компьютеров и смартфонов", www.ozon.ru/context/detail/id/6752687

    или вот это:
    Авторы: Саид Хашими, Сатия Коматинени, Дэйв Маклин, "Разработка приложений для Android", www.ozon.ru/context/detail/id/6227194
    Ответ написан
  • Где искать видео уроки по Java?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Мне помогло вот это: douua.org/forums/topic/8113
    Ответ написан
    Комментировать
  • Перспективы C++ разработчика

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Узнавайте что конкретно Вы хотите! Узнавайте это ни у кого-нибудь а задавая вопросы самому себе! Это как спросить у админа : "А стоит ли изучать security level при использовании FreeBSD?" ответ админа прост до безумия: "А почему возник такой вопрос?". Вот и Ваши про стоит или нет! Всегда нужно отталкиваться от чего-то конкретного! Некоторые думают что так они заработаю кучу бабла, а кто-то думает что он засядет и напишет лучшую программу мира и получит "перфект и уважуху", кто-то еще что-то думает. Определитесь точнее Что именно Вы хотите получить и к чему именно лежит душа?
    Ответ написан
    Комментировать
  • С чего лучше начать изучение языка С ?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А для чего Вам изучать С, если Вы точно знаете что перейдете на жабу или на плюсы?
    Ответ написан
    Комментировать