• Чем отличаются интеграционное, unit и e2e тестирование на frontend?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Как в юнит тестах тестить нажатие на кнопку? Или мы можем тестить только функцию-обработчик?


    В юнит тестах вы можете тестировать контроллер компонента, что мол он нужное состояние выставляет. DOM проверять не нужно. Механизм биндингов и так хорошо покрыт юнит тестами на уровне фреймворка. Чаще юнитами покрывают сервисы, ресолверы и прочее. Ими проверяют логику работы отдельных маленьких кусочков.

    в интеграционных можно уже потихоньку проверять DOM отдельных компонентов. Просто потому что вы могли опечататься при написании биндингов. Ну то есть цель интеграционных тестов - проверить что в сборке компоненты работают.

    В e2e (end to end) вы загружаете все приложение целиком и имитируете действия пользователей. Причем взаимодействие происходит насквозь. От кнопочки в браузере до запросов в базе данных на сервере (если есть бэкэнд). Это самый медленный вид тестирования и им стоит покрывать только позитивные сценарии.

    Читать про пирамиду тестирования.
    Ответ написан
    Комментировать
  • Нужна среда разработки на С# под Linux?

    arxont
    @arxont
    C# программист
    Комментировать
  • Нужна среда разработки на С# под Linux?

    Rou1997
    @Rou1997
    > Нужна среда разработки на С# под Linux?
    Нет, не нужна.

    > Приветствую toster(ы)
    Сами вы кофеварка.

    > нужна среда разработки на С# под Linux кто что посоветует?
    www.monodevelop.com/download
    Ответ написан
    Комментировать
  • Почему постоянно "хочется отвлечься на что-то другое"?

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

    Это такой мозг и ничего с этим не сделаешь. Но можно организовать процесс: писать план работ, задачи разобрать по важности/сложности и когда чувствуешь что попрет, открывать список и делать.

    В фазу когда настоиграло все к чертям обязательно заменить любыми оффлайн делами. Покапитаню: лучший отдых это смена вида деятельности. Перейти в соседнюю вкладку и листать мемасы это не смена вида деятельности. Для себя заметил что лучше всего помогает физическая активность. Какбе я знал это давно, но как тру ленивая жопа только кивал сам себе: тип да да, кэп, я в курсе. Все в курсе. Но лень. Потом случился ремонт в квартире и понеслась. Хочешь не хочешь, а попотеть в оффлайн приходилось. Тут эта теория нашла подтверждение на практике, продуктивность реально выросла. Фазы «запоя» и «отдыха» более менее уравнялись: на продуктивную работу каждый день приходилось около 3-5 часов, фаз «о, мемасы» и «в интернете кто-то неправ» стало гораздо меньше, затем совсем пропали. Затем ремонт закончился, а привычка уже выработалась (для выработки любой привычки достаточно трех недель, а зачастую и меньше) и ее следствия понравились настолько, что подняв жопу пошел таки в качалочку, в которую планировал последние пару лет. И таки скажу вам по секрету — лучшего варианта нет.

    Пообщавшись с людьми которые «профессиональные кочки», то есть которые горят своими результатами в зале, увидел что к отдыху они относятся как к неотъемлемой части работы: ни в одной сфере деятельности такого отношения нет. То есть для них работа это правильно и вовремя вкалывать-правильно вовремя отдыхать. Без любой из частей результата не будет.

    Зожника из меня не вышло, а вот проблема из топика растворилась. Переехав в другой город заменил качалочку простым великом: пару часов покататься тож норм.

    С наступающим, котаны!
    Ответ написан
    2 комментария
  • Как я могу превратить код в изображение?

    @kttotto
    пофиг на чем писать
    На base64 это не похоже, значит обычный набор байтов. Значит строку надо конвертнуть в массив байтов. Ну потом это в поток и либо сохранить в файл, либо отдать дальше куда надо. Примерно как то так
    byte[] imageBytes = Encoding.ASCII.GetString(strData);
    using(var str = Image.FromStream(new MemoryStream(imageBytes)))
    {
        str.Save("image.png", ImageFormat.Png);
    }
    Ответ написан
    8 комментариев
  • Насколько бесплатна разработка на ASP.NET для новичка?

    @kttotto
    пофиг на чем писать
    Это абсолютно бесплатный фреймворк. Можете на нем хоть простой, хоть средней, хоть большой руки делать сайты и платить за него не нужно. Если говорить о стеке, то не обязательно использовать mssql, можно и mysql, и postgres и т.д., он отлично работает с разными бд. Тоже самое касается и IIS, есть селфхост, есть кестрел.
    Ответ написан
    2 комментария
  • AngularJS или ExtJS для работы с Java бэкендом?

    ValorVl
    @ValorVl
    DevOps
    Extjs больше подходит тем кто не может или не хочет писать свой ui и готов пожертвовать производительнстью в угоду скорости разработки(!), однако стоит упомянуть, что ext довольно сложный и местами до одурения кривой. This is trap!

    Angular действительно хорош. Хорошо ложится на Spring data rest и HATEOAS
    Ответ написан
    Комментировать
  • AngularJS или ExtJS для работы с Java бэкендом?

    @bromzh
    Drugs-driven development
    На текущем месте работы делаем личный кабинет интернет-банка. Довольно насыщенный фронтенд - диаграммы, много всяких форм, и т.д.
    Стек как раз Spring + angular с requirejs(я фронтенд пилю). Пишется отлично. На другом фреймворке было бы геморнее.

    UPD. Перечислю вещи, которые мне нравятся в ангуляре.
    • DI. Это довольно хороший паттерн, и тут он очень помогает. Да и это близко по духу к самой яве, там это часто используется.
    • Двустороннее связывание данных. Многие критикуют его, т.к. в больших приложениях могут начаться тормоза из-за кучи вотчеров. Но на самом деле, если писать нормальный код, связывать с 2-х сторон только нужное и помнить про циклы. то всё будет хорошо.
    • Директивы
    • Отсутствие шаблонов. Вместо этого манипуляции напрямую с DOM. Для меня это плюс, так как нет разделения на обычный html-код и синтаксис шаблонизатора. Это очень удобно. Сперва делается вёрстка, при этом верстальщик не обязательно должен знать ангуляр. А потом js-разраб расставляет по коду директивы и постепенно наращивает функционал. В случае наличия шаблонизатора, верстальщик должен ещё и уметь в шаблоны.
    • Отсутствие стандартного набора виджетов. Можно выбирать на свой вкус: есть модуль с UI на Bootstrap'e, есть Matrial, и всегда можно сделать свой набор UI
    • Модули
    • Куча библиотек почти на все случаи жизни
    Ответ написан
    1 комментарий
  • Что мой провайдер знает обо мне?

    @nirvimel
    Когда я захожу на определенный сайт, провайдер видит URL?

    Да.

    А если я захожу на https?

    Известен IP сервера и имя домена. Больше ничего.

    Откуда провайдер узнает, что я скачиваю определенный фильм/программу через torrent?

    Торрент-клиент общается с трекером по HTTP. Все видно насквозь: конкретные торренты + вся статистика (когда начато скачивание, когда закончено, когда пошла раздача, сколько роздано). Возможно подключение к трекеру и по HTTPS, но rutracker.org такой возможности не дает (мне тоже интересно почему).

    Все пакеты которые я получаю и раздаю значит провайдер скачивает себе, чтобы узнать что это за фильм/программа?

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

    Или он отслеживает факт скачивания .torrent файла, а затем делает вывод по идущим пакетам, что это скачивается?

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

    Когда я пользуюсь VPN, что видит провайдер?

    Видит шифрованный траффик на конкретный IP. По IP можно узнать, что этот диапазон продается под VPSы. Сам факт шифрованного трафика вешает абонента в списки тех, "кому есть что скрывать", а значит подозреваемых при любом розыске.

    Что я зашел на определенный IP и с него идут зашифрованные потоки?

    Дальнейшее направление трафика от VPN-сервера отследить невозможно (по крайней мере, на оборудовании провайдера в автоматическом режиме). Но при целенаправленной слежке за абонентом в принципе возможно по временным меткам сопоставить трафик абонента с трафиком любого сервера.

    OpenVPN будет работать через VPN IP и в браузере и при обновлении Windows, драйверов, ...?

    В зависимости от настройки. Но в общем случае, да, так.

    Читал, что в Windows есть такая особенность, что если провайдер как-то урезает пакет, то VPN отключается и сайту показывается мой реальный IP?

    Это не связанно с провайдером. Это особенность Windows. Когда VPN отваливается, весь трафик вылетает наружу в открытом виде. Опять же зависит от настроек. Но это еще одна цена "удобства" при использовании Windows.

    При этом провайдер видит на каком я сайте, что скачиваю?

    VPN отвалился - хацкер спалился.

    Таких фишек много?

    Смотря о чем речь. В сфере сетевой безопасности и анонимности различных нюансов вообще много.

    Как от них защитится?

    Учить мат.часть. Разбираться в сетевых протоколах и в устройстве ОС.

    Если пользуюсь каким-то расширением типа ZenMate, dotvpn, провайдер аналогично как и с VPN видит что что-то отправляется и приходит на определенный VPN IP?

    Расширения очень разные. Они могут базироваться на совершенно разных технологиях. Ни один специалист вам не скажет за все расширения. Не исключено, что многие из них, по сути - honeypot, то есть созданы с целью слежения за любителями анонимности, привлекают своим удобством и дают ложное чувство безопасности.

    При использовании Tor, кто-то пользуется моим IP, пока я пользуюсь чужим?

    Нет. Если у вас не сконфигурирован Exit Node.

    Что при этом видит провайдер, что я получаю потоки данных с определенных IP и каждый раз разный IP?

    У них есть система точного обнаружения использования Tor. Это факт остается в логах с теми же последствиями, что и для VPN.

    Провайдер видит URL?

    Через Tor и VPN - нет.

    Каким образом можно полностью управлять сетью на ПК, видеть что, куда и когда отправляется или приходит на ПК (Windows, Linux)?

    Видеть все: https://www.google.com/search?q=Wireshark
    Блокировать все лишнее: https://www.google.com/search?q=Comodo+Firewall
    Ответ написан
    22 комментария
  • Чем отличаются JSON от JSONB?

    @curator
    JSONB — двоичная разновидность формата JSON, у которой пробелы удаляются, сортировка объектов не сохраняется, вместо этого они хранятся наиболее оптимальным образом, и сохраняется только последнее значение для ключей-дубликатов. JSONB обычно является предпочтительным форматом, поскольку требует меньше места для объектов, может быть проиндексирован и обрабатывается быстрее, так как не требует повторного синтаксического анализа.

    Источник: https://habrahabr.ru/post/282764/
    Ответ написан
    1 комментарий
  • Что выбрать: Ubuntu 14.04 x64 или CentOS 7 x64?

    akubintsev
    @akubintsev
    Опытный backend разработчик
    Конечно это мифы о производительности.
    Выбирайте то, с чем привычнее/удобнее работать.
    Влияние ОС на производительность с одной и той же файловой системой и ядром стремится к нулю.
    Кто вам мешает собраться кастомное ядро или скомпилировать mysql так, как вам кажется лучше?
    Ответ написан
    Комментировать
  • Удалять ли данные из бд?

    @sAndreas
    Юзер
    Моя позиция, которая меня не раз выручала - если позволяют размеры - то лучше хранить всё. Я даже делал в отдельную таблицу запись кто удалил данные(потому что обычно автоматом пишется user_id того кто изменил данные, а если удалил - то и записи не оставалось кто именно удалил). Пару раз ставил на место особо хитро*опых, которые думали что если данные удалить, то потом никто и не узнает кто послал на удаление.
    Ответ написан
    Комментировать
  • Интересная и сложная идея для веб-приложения (не нужно оригинальной)?

    Maksclub
    @Maksclub Куратор тега Веб-разработка
    maksfedorov.ru
    на vc.ru публикуют стартапы (не только российские), смотрите там и делайте аналоги или уникальные, что лучше
    Например сделайте аналог https://docplus.ru/ для своего города

    Помимо красивого лендоса там:
    - управленеи врачами
    - управление выездами
    - управление расписаниями работы
    - личная медкарта клиента
    - какие-то сервисы по уходу за больными
    - анализы и какие-то бизнес-модели для планирования лечения
    - сервисы телемедицины (аля синхронизация с ботами Телеграмма и ВК), вчерашняя новость https://vc.ru/n/docplus-vk
    - по любому интеграция с картами, платежками, магазинами может даже...


    ...

    У меня есть пару своих идей, но я пилю их на PHP -- не поделюсь, там уже и сущности готовы и уже много чего готово :) А кстати делаю аналог с сервиса, написанного на Asp.net :)
    Ответ написан
    4 комментария
  • Как создать браузер на C# или C++?

    Написать браузер - это огромный труд. Скачайте исходники браузера Chromium и посмотрите сколько там строк кода. Даже если каждую секунду писать по одной строке кода, то на такое количество строк удет как минимум пара лет. А еще же надо все отладить, написать тесты. Это не подъемная работа для одного человека.
    Ответ написан
    2 комментария
  • Почему неправильно работает LINQ?

    devspec
    @devspec
    Помогло? Отметь решением
    string[] s = new[] { "sgsg", "tdfgsdfg", "rdfgsdfg", "iiutyiu", "4fghdhsfd", "kasdgfdsf", "asdfdfsd" };
    
    var res = "";
    
    res = s.Aggregate(res, (a, b) => a + b[0]);
    
    Console.WriteLine($"{res}");
    
    Console.ReadLine();
    Ответ написан
    2 комментария
  • Как вы втягиваетесь в новый проект?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Для быстрого начала работы над задачей, только что влившемуся в проект сотруднику, нужны следующие вещи:

    1. Централизованная структурированная проектная документация всего разрабатываемого решения.
    2. Архитектурная схема решения и помеченный блок, в котором нужно будет выполнять задание.
    3. Краткое описание задания и методика проверки его полного выполнения.
    4. Краткая архитектура кода этого блока и указание места с пояснением для начала выполнения работы.
    5. Ориентировочный перечень наиболее вероятных названий классов/методов/смежных API для использования при выполнении задания с кратким описанием и со ссылками в централизованную документацию (п.1).
    6. Ориентировочный перечень классов/методов/смежных API, которые возможно могут понадобиться (также, как и в п.4 со ссылками в п.1).
    7. Рекомендуемая среда разработки для выполнения задания и её настройки для исполнения данной задачи
    8. Планируемое время выполнения задания
    9. Контакты с другими разработчиками (с указанием их зон ответственности в проекте и времени доступности) для возникающих вопросов, касательно этого задания.

    Попросите дать задачу в таком формате: у того, кто давно работает в проекте, это займёт не более часа, а сэкономит - недели проектной разработки!
    Ответ написан
    2 комментария
  • Что делать когда коллеги уровнем ниже?

    @amambaru
    Кто сказал что они ниже уровнем?
    Эффект Даннинга — Крюгера
    Программеру всегда трудно вникнуть в чужой код - это не зависит от квалификации того, кто кодировал.
    Возможно что даже и они более квалифицированы - просто давным-давно забили на перфекционизм, а из вас он еще прет из за юнешеского максимализма.
    А может и вы правы.

    Тут дело не в квалификации, а в мотивации и организации процесса.
    Скажем, мне доводилось работать в команде, где в git пропускали всего по 200 строчек изменений за раз. И эти строчки обязательно должны были пройти через стандартизованное форматирование и линтеры (статические анализаторы) - иначе их git выплевывал. Это вынуждало программистов писать более менее приемлимо - коллег код меньше раздражал.
    Ответ написан
    19 комментариев
  • Как решить проблему с концентрацией?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Отвечу как человек, который тоже имел такие проблемы.
    Делайте то, что вам интересно. Если интересно программирование, выберите подходящее направление и изучайте. Если неинтересно, даже не пытайтесь, найдите что-то другое. Должно быть желание тратить на это свободное время а не просто "я хочу много зарабатывать, поэтому пойду на программиста"
    Ставьте цели, локальные и глобальные и заставляйте себя делать что-то. Это касается не только программирования а и жизни в целом, если хотели заняться спортом, начните, поставьте цель, допустим бегать в день 1 км в течении месяца или что-угодно другое, главное чтоб это было нужно вам, ну и конечно нужно ставить такие цели, которые достигнешь.
    Если хотите изучить теорию, выберите тот источник, который вам больше всего подходит(у меня это книги) и занимайтесь регулярно, поставьте цель читать N страниц книги или заниматься сколько-то минут, это должен быть такой объём, при котором не начинаешь отвлекаться плюс ещё немного, но не больше.
    И очень важно не отвлекаться во время обучения, выключить ВК, скайп и все остальные раздражители на время обучения.
    P.S. действия будут иметь эффект, если вы обычный ленивый человек, как и все остальные и не имеете какой-нибудь редкой болезни, из-за которой могут возникать подобные проблемы)
    Ответ написан
  • Как решить проблему с концентрацией?

    mudrenokanton
    @mudrenokanton
    frontend dev
    Чето тут многие пишут страшилки про болезни и докторов, а при этом сами говорят, что они не доктора и не разбираются.

    Я лично не вижу ничего криминального. Обычная привычка, зависимость. Мы склонны подсаживаться на "новизну". Можете почитать статейку на эту тему, если с английским дружите:
    https://medium.com/the-spike/the-crimes-against-do...

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

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

    По поводу отвыкания от телефонов и соц-сетей, если проблема локальная. Я особо никогда не зависал, но моментами бывало, что ловил себя на мысли, что надо бы меньше времени на них тратить. Что я делал? Брал бумажку и перед тем как зайти в fb или instagram — четко писал на этой бумажке "что я собираюсь сделать" | "зачем я хочу это сделать" | "что в итоге сделал" в 3 колонки. В начале выходило чето в стиле "зайти в fb" | "спросить человека X про встречу" | "тупил 30 минут скроля ленту". Со временем 2 и 3 колонка начали все меньше отличаться, а потом мне стало таааааак влом это записывать, что мне казалось проще тупо не заходить. Буквально 1-2 недели максимум такой терапии надо, а то и несколько дней.

    Правильно писал Стивен Кови про момент, между раздражителем и реакцией. Чем четче этот момент будешь чувствовать — тем прикольней жизнь будет.
    Ответ написан
    3 комментария
  • Как решить проблему с концентрацией?

    @nomta
    1. Отключить внешние раздражители - очень важно. Телевизор и подобное лучше вообще убрать подальше.
    2. Научиться правильно отдыхать, в том числе - чтобы голова отдыхала. Закончили работу - переключайтесь на то, что происходит вокруг, общайтесь, забудьте вообще о работе. Можете 10 минут удерживать "пустоту" в голове, не думать ни о чем? Чтобы ни одна мысль не пролезла в голову? Дайте мозгу "проголодаться", сразу станет интереснее.
    3. Ваша проблема - не только Ваша, с ней сталкиваются практически все так или иначе. Приходится учиться, находить свой ритм работы и отдыха. Допустим, отдыхаете каждые полчаса. Каждый раз, завершив какую-то подзадачу, ставите отметку "выполнено". В связи с этим - полезная техника: составляйте план из микрозадач и, по мере их выполнения, ставьте галочки напротив каждой выполненной задачи. Мелочь, а хорошо помогает в плане концентрации.
    4. Одной из причин может быть то, что Вы ставите перед собой сразу много обязанностей, мозг воспринимает это как неподъемную задачу и блокирует ее выполнение. Разбивайте задачу на более мелкие и не обещайте себе выполнить непременно все. Отдыхайте, переключайтесь, развлекайтесь.
    5. Не держите все в голове - записывайте. Разгружайте голову. Когда занимаетесь - ведите подробные конспекты. Это помогает структурировать информацию. На экзамене очень выручает - Вы вспоминаете не информацию из учебника, а то, что сами записали в конспект, как будто это Ваше творение. Вам остается только воссоздать свой конспект на листочке, что обычно происходит легко, как будто само собой.
    6. Лучший отдых - это перемена занятий. Найдите противоположный вид деятельности, например, спорт, и работайте с реальной отдачей, до изнеможения. Уровень концентрации в вашей основной области повысится в разы.
    Пробуйте, ищите, учитесь. Есть целое направление - brain fitness, посмотрите, может, найдете что-то полезное и для себя.
    Ответ написан
    Комментировать