• Как выглядит реальный пример теста JUNIT?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Пользу от тестов замечаешь только тогда, когда начинаешь писать что-то сложнее hello world'ов. Особенно хорошо их видно, когда приложение разрабатывается уже несколько лет и более, чем десятком разработчиков. Изменяешь какую-то часть кода, запускаешь тестирование и видишь, что теперь другой участок кода тестирование не проходит, так как в прошлом году у разработчика, которого ты даже не встречал, протекла абстракция.
    Ответ написан
    Комментировать
  • Широкий кругозор для профессионального программиста?

    AlexMaxTM
    @AlexMaxTM
    Поймите простую вещь, вы идете не экзамены сдавать, на собеседование. Бессмысленно читать ночь перед собеседованием и писать шпоры. В зачет пойдет только ваш реальный опыт, а не теоретические знания.
    Хотите список вопросов, на котором буксовали у меня люди на собеседовании?
    - Каким редактором вы пользуетесь? Какая версия, какие плагины стоят? Какая горячая клавиша для ... (Если человек буксует, значит он мало сидит за редактором).
    - Какую версию MySQL (или PostgreSQL) вы используете, в чем отличие от предыдущей версии?
    - В каких ситуациях необходимо использовать интерфейсы, но категорически нельзя использовать абстрактные классы. И наоборот, в каких ситуациях необходимо использовать абстрактные классы, но недопустимы интерфейсы, или трейды?
    - Даю листок бумаги и пишу длинное число 4923872788828228453. Даю задание, напишите регулярное выражение, чтобы разделить это число по три через пробел: 4 923 872 788 828 228 453. Число может быть произвольным. Если человек не в состоянии сделать это одним регулярным выражением, тогда предлагаю решить ему задачу любым другим способом, но на бумаге и без интернета. Просто интересно как он составит алгоритм. Задачки бывают разными, под рукой всегда было около пары десятков подобных примеров.

    Потому вы не сможете подготовиться к собеседованию, читая книги.
    Ответ написан
  • Как работают real time приложения в Java?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Тут все зависит от архитектора и архитектуры.
    Собственно, все практически тоже самое, берется очередь, и на нее сажаются воркеры.
    Сами очереди есть в любом JEE контейнере. Также в любом JEE контейнере можно запустить нужное количество воркеров. Т.е. это вот все уже заложено в саму спецификацию JEE, также есть куча разных реализаций как очередей, так и контейнеров, которые поддерживают единый API взаимодействия. Есть jboss, glassfish и еще добрый десяток реализаций. Это так сказать традиционный путь. Здесь мы получаем единый механизм управления, деплоя и взаимодействия в рамках экосистемы.
    Также можно все тоже самое реализовать и в связке с rabbitMQ и просто плодить процессы в качестве воркеров. А можно и из контейнера подцепиться к тому же самому rabbitMQ.

    Не знаю, получилось ли ответить на ваш вопрос.
    Ответ написан
    3 комментария
  • В чем суть WinApi?

    @Mercury13
    Программист на «си с крестами» и не только
    Windows API — это самый низкоуровневый интерфейс Windows, доступный прикладному программисту — в том плане, что он на долгосрочной поддержке и не изменится с Windows 11.

    Поверх Windows API работают все BOOST и STL.

    Пример: читать файл в 130 мегабайт по одному байту. Добавив асинхронного чтения через OVERLAPPED, я сумел это сделать менее чем за 2 секунды (это был поток общего назначения с виртуальными read(), write() и seek(); специализированный прикладной буфер даст ещё выигрыша, но и это хорошо). То же самое через FILE* — не дождался.

    Пример второй, всё те же файлы. Дело в том, что Excel захватывает свои файлы на всё время, пока он открыт. Закрывать? — плохой выбор. Добавив один флажок в CreateFile, документы всё-таки стало возможным открывать при работающем Excel.
    Ответ написан
    2 комментария
  • Где найти рассказ про хакера?

    dok2d
    @dok2d Автор вопроса
    Сисадмин, делаю сайты разной паршивости
    Нашёл!
    Автор: mindw0rk
    Рассказ: Незнакомец по ту сторону сети
    Рассказ не длинный.
    Ответ написан
    6 комментариев
  • Куда развиваться в java?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Открой сайт с вакансиями, выбери то направление, что нравится и посмотри, что нужно учить.
    Ответ написан
    1 комментарий
  • Какие книги и ресурсы вы знаете,чтобы изучить ассемблер?

    Itmoing100
    @Itmoing100
    engineer
    Книга "Код. Тайный язык информатики". Автор Чарльз Петцольд.

    Также книга автора Naom Nissan. The element of computer systems.

    Смотреть топы амазонбукс
    Ответ написан
    Комментировать
  • Не могу определится с выбором: PHP или Python для веб?

    @trofimovdev
    Python
    Отдам свой голос в пользу Python:
    • простой синтаксис
    • применяется не только в веб
    • сложнее найти работу, но и платят, насколько я знаю, неплохо :)
    • лучше коммьюнити (чисто субъективное мнение)
    • быстрая разработка


    ИМХО, PHP умирает. Все, что могу про него сказать:
    • популярные CMSки (Wordpress, Drupal, Joomla!, etc.) написаны на нем и было бы неплохо его знать
    • проще найти работу (больше заказов)
    • большая конкуренция среди разработчиков
    • куча говнокода
    Ответ написан
    7 комментариев
  • Как писать тесты?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Тесты нужны для автоматического получения информации о состоянии продукта. Если у вас нет вопросов, т.е. вы во всем уверены, то и тесты как бы не нужны (ирония). Вы ведь каждый день перед тем как сесть за руль смотрите не сдулись ли колеса? Смотрите на уровень бензина. Слушаете как работает мотор на холостом ходу. Проверять работают ли светофоры не нужно, вы на них не можете повлиять. Проверять есть ли пробки на дорогах нет смысла, вы на них не можете повлиять. А вот состояние вашего автомобиля, да. Так же и с ПО. А с чего начать - логично, с самых критичных вещей. Чем виднее и центральнее функция, тем важнее ее покрыть тестами.
    Ответ написан
    4 комментария
  • Как научиться учить программирование?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    А просто со временем, до всех доходит, что программирование это не интересные исследования, познания неведомого как в фантастике, прикручивание двумя кликами новых движков.
    А на деле - это еще и множество рутинной и кропотливой работы, которая по сути - скучная, однообразная, И ее процентов 80.

    Вы это наконец поняли. Какую мотивацию вы хотите от нудной и кропотливой работы - неясно. Мотивация может быть в зарплате, в создании своего продукта, если он есть. А так - человек должен уметь мотивировать себя сам, а не ждать пока его рассмешат клоуны.
    Ответ написан
    4 комментария
  • Сайты полностью меняющие свой контент при обновлении страницы. Кто и зачем их делает?

    @Butylkus
    Это называется клоакинг. Поисковик проиндексировал некий контент о кроликах, а потом стал показывать его в выдаче. Пользователя занесло туда, а там бац и реклама. Или вирусня. Или... Да что угодно.
    Короче, делаются такие сайты для обувания лохов, поисковиками дико нелюбимы, пользователям не нужны и вообще это тот самый мусор, который в интернете не нужен.
    А ещё иногда подобный мусор вешается вместо заглушки на домен для последующей перепродажи.
    Ответ написан
    1 комментарий
  • Что изучить в комплексе с курсами Javarush, чтобы можно было брать заказы на фрилансе или куда-то устроиться как Java Junior?

    @bubuxDD
    Ну человек ты конечно замахнулся)

    А теперь серьезно, я тоже начинал с этих курсов поэтому опишу свой опыт. Пригодиться тем кто не хочет наступать на грабли. Начинал с них когда интерфейс был на силверлайте и лекций было очень и очень мало, впервые стартовали реальные проекты. Но это было давно и как сейчас там обстоят дела не знаю. Всего прошел 30 уровней.
    Итак конкретно за курсы
    1) Они помогли научится кодить на джава.(дополнительно к курсам смотрел головоча, по многопоточности и еще паре тем, в книгах читал интересующие главы)
    2) Они научили не боятся программирования. Как бы странно это не звучало.
    3) Дали основные понятия по алгоритмам и ооп.(основные не значит достаточные:) )
    4) В целом самый главный плюс они хорошо структурированы и при возникновении проблем есть сообщество которое поможет. Ведь нет ничего хуже чем то состояние когда пропадает мотивация из-за слишком сложной задачи а спросить не у кого(За мои годы обучения это оказалось самым важным плюсом при выборе любых учебных материалов)

    Потом была стажировка у Кислина(Каким-то чудом удалось туда попасть от джавараш)
    Здесь научился строить более менее работающие приложения. И перестал боятся библиотек, фрейморков и прочего. Главное для меня что было вынесено со стажировки это умене соединять разные технологии(К примеру теперь в моих глазах нет ужаса если вдруг узнаю что мне нужно сделать возможность обмена данными для линукс приложеня написанного на с++, с веб-приложением на java которое будет отдавать данные мобильникам. То есть присутствует понимание как работают технологии).

    Потом я устроился на работу))))))

    По времени на ближайшие пол года, просто проходите курсы на javarush. Плюс htmlacademy - на нем курсы по html, css. В этом же заходе изучайте sql по книге издательства o'relly -"Изучаем sql"
    Если есть стажировка хорошо, если нету покупаем у Кислина topjava. После javarush это наиболее предпочтительный вариант, первая рассылка за плату остальные бесплатные так что если не уложитесь в сроки можно не беспокоиться у вас всегда будет свежая версия проекта, если паникер забэкапите эти 3 гига данных. На этом этапе главное усвоить то как технологии работают вместе и то как важно выбирать правильную архитектуру. На это уйдет еще пол года.
    (Данные сроки актуальны если заниматься кодингом по 6 часов ежедневно, ну в воскресенье можно расслабиться:) )
    Английский нужен, учить однозначно. Lingualeo плюс Пимслер плюс учебник плюс сериалы на инглише. На то что бы подтянуть на норм уровень уйдет месяца 4-5.

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

    Матан - жуть, но если хотите быть супер сеньёром с космической зп. Учить придеться как бы не плевались и не писали что он не нужен . Так как алгоритмы, и нове технологии тот же искусственный интеллект это один сплошной матан. Да и очень много мест где на самом деле матан нужен, даже если прямо в вакансиях это не указывают. Мой совет хотите расти как профессионал, учите.

    junior, mid, senior - это указание уровня опыта. Забугорный аналог наших младший, старший - сотрудник. Такие уровни деления по знаниям приняты почти во всех областях на западе(веб, мобилы, десткоп, наука)

    Ну и чисто бытовой совет, старайтесь хорошо кушать, высыпаться и не забивать свою голову программухой. Оставьте себе свободное время это поможет не охладеть. Вот к примеру есть такие кадры которые пишут что они 12 часов 7 дней в неделю батрачат код и через 3 года пропихиваются на джуна в контору "рога копыта" и Там уже растут как профы батрача код по 16 часов в сутки. Это не полезный пример. Голова постоянна забита новыми знаниями, кругом каша и ничего не разложено по полочкам. Вот и выходит что по 12 часов занимаются а толку ноль. Только устают потом и выгорают. Как мне кажеться наиболее удобный распорядок дня это когда часиков в 8-9 вечера ложишься спать, встаешь в 3-4 утра. Выходишь на прогулку дышишь свежим воздухом и топаешь кодить, а лучше учить что-нибудь на свежую голову, это классно и информация лучше усваивается. Кодишь часа 4 потом универ, работа(нужное подчеркнуть). А вечером делаешь какую-нибудь рутину, типа накодить какой-нибудь фигни которая особых умственных способностей не требует. Главное не зарывайтесь. И делайте перерывы между технологиями. К примеру поучили жабу два месяца, а потом следующую недельку вообще ничего не кодите. Это поможет сберечь психологическое здоровье, а утренние прогулки физическое))))

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

    Ответ конечно скомканный получился, но если что-то интересует спрашивайте подскажу. Так как сам был недавно студентом.
    Ответ написан
    Комментировать
  • Как совместить фабрику и закон Деметры?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Заюзал в очередной раз абстрактную фабрику, и неожиданно вспомнил, что метод класса не должен обращаться к объектам, которые вернул какой-либо метод.

    Фабрика возвращает интерфейс объекта, который был специально введён, чтобы предоставить обобщённый доступ к разным типам объектов создаваемых фабрикой. Пользователи фабрики взаимодействуют только с этими интерфейсами, не с самими объектами. Т.о. пользователи фабрики не зависят от модулей реализующих конкретные объекты. Закон Деметры как раз и нужен для того, чтобы уменьшить зацепление между модулями. Следуйте духу закона, а не букве.
    Ответ написан
    Комментировать
  • Как можно закрепить своё понимание нового стандарта ES6?

    Stalker_RED
    @Stalker_RED
    Пару месяцев назад приняли ES8, а вы закрепляете ES6?

    Начните уже писать код, больше кода, разного. Все эти новшества - это инструменты, облегчающие вам работу. Можно пользоваться бензопилой, можно электропилой, можно ручной пилой. Если вам нужно спилить одну небольшую ветку, а осваивать бензопилу сложно и страшно - пилите ручной. Если вам нужно спилить 500 веток, то есть смысл разобраться с более быстрым и удобным инструментом.

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

    Также не стоит забывать, что браузеры при реализации этих "фич" могут запаздывать на годы. Те-же промисы не работают в IE и никогда работать не будут.
    Ответ написан
    1 комментарий
  • Что читать после "Программирование: принципы и практика с использованием C++" Страуструпа?

    @SolidMinus
    В самом низу страницы: https://yandex.ru/jobs/internship/

    C++
    Бьерн Страуструп. Язык программирования C++
    Герб Саттер. Решение сложных задач на С++
    Герб Саттер. Новые сложные задачи на С++
    Г. Саттер, А. Александреску. Стандарты программирования на С++
    Мартин Фаулер. Рефакторинг. Улучшение существующего кода
    Э. Гамма, Р. Хелм, Р. Джонсон и др. Приемы объектно-ориентированного проектирования. Паттерны проектирования
    Эндрю Таненбаум. Современные операционные системы
    Ответ написан
    Комментировать
  • IDEA. Расширение для генерации паттернов.?

    @ivan19631224
    Это не совсем паттерны. Это штука, которая называется в IDEA Live Templates (в настройках Editor -> Live Templates). Это по сути улучшенный подстановщик текста, который может вставлять текущее имя класса, методов, генерить имена переменных, учитывает конфликты имён и т.п. То что вы упомянули "fori" находится там в разделе "iterations". Там есть ещё очень много, например "sout" для "System.out.println();", "psvm" для "public static void main(String[] args){}", "psfs" для "public static final String" и т.д.
    Очень рекомендую просмотреть интересующие области, и освоить те которые вы используете часто. Также можно создавать свои, правила там несложные.
    Ответ написан
    Комментировать
  • Какие есть opensource проекты написанные на spring?

    @raspier
    Java Developer
    Ответ написан
    Комментировать
  • Какой алгоритм подойдет для описания полета насекомого?

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    Можно сделать цепочку преследования: к случайной точке тянется одна, к ней другая, и т.д., а последняя – муха.

    Очередную точку ставить на плоскости случайно, в любом месте внутри допустимой области. Эта точка – цель, к которой стремится следующая, невидимая точка: каждый следующий кадр её координаты изменяются на k * векторИзТекущегоПоложения-в-Цель:
    x = x + k * (xTarget - x);
    y = y + k * (yTarget - y);

    Так «преследователь» замедляется, по мере приближения к цели, никогда её не достигая.

    Эта невидимая точка – не одна. К ней, как к цели, стремится следующая. К той ещё одна. Наконец, сама муха по этому закону стремится к хвосту этой цепи - очередной точке.

    Чем больше звеньев в такой цепи, тем плавнее получается кривая. При приближении мухи к цели ближе, чем на D, генерится следующая случайная цель.

    Сделал рабочий пример.

    Можно поменять алгоритм и сделать, скажем, линейную скорость постоянной. Или случайно варьировать параметры k и D – от этого поменяется скорость и траектория от плавной ближе к ломаной.
    Ответ написан
    Комментировать