• Как разработчики пользуются Git в компаниях?

    @alexalexes
    В серьезных компаниях невозможно состояние гонки релизов, которую вы описали.
    Во-первых, информационная система используется не в одном экземпляре. Всегда есть как минимум продакшен экземпляр, предпродакшен и девелоп экземпляры системы. В предпродакшен и девелоп версии могут загружаться не только разные релизы кода, но и гонятся разный набор данных для отладки и тестирования.
    К этим экземплярам и набору данных имеют доступ разные работники, с разным уровнем допуска и ответственностью. Рядовой разработчик не будет иметь доступ в продакшен и предпродакшен, для него вышестоящий работник сформирует девелоп версию и подготовит нужный набор данных, который нужен именно для решения его рабочей задачи. Также рядовой разработчик не будет иметь полный доступ к действиям в репозитории, он может действовать только в рамках своей дев ветки, никто ему не даст прав сливать в мастер.
    Для каждой новой разработанной функции пишутся автоматические тесты, как минимум с одним тестом, что она включается, эти тесты пишет отдельный контингент работников.
    Прежде чем код попадет в продакшен, он будет просмотрен вышестоящим работником, его функционал будет протестирован сначала на тестовых данных, потом на боевых, с каждого теста будут сняты метрики не только по возникающим ошибкам, но и по производительности.
    Уже на основе всех этих данных и будет принято решение компетентным работником вливать ваш функционал в прод или нет. Вместе с этим будет принято решение на слияние в мастер в репозитории.
    Ответ написан
    Комментировать
  • Изучение React. Стоит ли читать книгу?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Глянул содержание. Книга не о паттернах или подходах, там просто описание реактовского и околореактовского API, ну может, какие-то беспрактисы, связанные с теми или иными хуками/тулзами/etc. Это всё есть в документации.
    Ответ написан
    4 комментария
  • Какие примеры кода показывать работадателю, если ты под NDA?

    vabka
    @vabka
    Токсичный шарпист
    Никакие и не показывать.
    Если бы мне кандидат показал код, который под NDA, то я бы сразу его вычеркнул из кандидатов, тк такой работник и бесплатно не нужен, который при увольнении с радостью сольёт твой код.

    Все адекватные интервьюеры прекрасно понимают, что у кандидата тоже есть своя личная жизнь и далеко не у всех программирование является хобби, которым ты с радостью будешь заниматься и в свободное время.
    Ответ написан
    2 комментария
  • Какие примеры кода показывать работадателю, если ты под NDA?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Наличие у кандидата кода, который можно показать - это не обязательное требование, а дополнительный плюс в его пользу. Особенно хорошо, если это вклад в open source.
    Ответ написан
    Комментировать
  • Какие примеры кода показывать работадателю, если ты под NDA?

    xez
    @xez
    TL Junior Roo
    всем нужны примера кода, понятно почему

    Мне не понятно.
    Ни разу не собеседованиях у меня примеры кода не спрашивали.
    Я сам на собеседованиях ни разу примеры кода не спрашивал; я прошу рассказать о предыдущем проекте чисто с технической точки зрения, бизнес логика мне не интересна и на собеседовании не нужна.
    Ответ написан
    2 комментария
  • Где найти других программистов?

    Ответ написан
    Комментировать
  • Как изучить основы программирования для последующего изучения С++?

    Adamos
    @Adamos
    Другой воробей на дороге стоял
    И под ноги очень серьезно смотрел.
    Хотел воробей научиться ходить
    И думал, с какой ему лапы шагнуть.

    Тщательная подготовка к тому, чтобы наконец заняться тем, чем собираешься заняться - это один из видов прокрастинации.
    Ответ написан
    4 комментария
  • Почему не работает переадресация на 443 порт в томкат?

    xez
    @xez
    TL Junior Roo
    Оставьте томкат на 8080 порту, а https настройте на nginx.
    nginx должен перенаправлять запросы на томкат (рецепт можно легко нагуглить)
    Ответ написан
    9 комментариев
  • Какой курс Java выбрать новичку с нуля?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Курсы не нужны, читайте учебники.
    Ответ написан
    Комментировать
  • Зачем создавать слой с интерфейсами?

    xez
    @xez
    TL Junior Roo
    Причины такие:
    0. Это правило хорошего тона. Сеньеры думаю интерфейсами, а не реализациями.
    1. В случае изменения реализации, код, использующий интерфейсы не придется изменять.
    2. Есть разница в том, какой механизм будет использоваться при проксировании объекта в зависимости от того реализует он интерфейс или нет. (jdk dynamic proxy / cglib)
    3. В некоторых случаях вам вообще не обойтись без выделения интерфейса.
    Ответ написан
    Комментировать
  • Зачем комментарии на сайте оборачивать в тег article?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега HTML
    его рекомендуют оборачивать тегом article
    Тут нужно дать ссылку на эту рекомендацию, чтобы мы могли её оценить не на уровне "Рабинович по телефону напел".

    его можно использовать в любом другом месте, а как использовать комментарий на другом сайте
    Когда говорят об использовании "в любом месте", подразумевают "любое место данного сайта". И в рамках сайта комментарий действительно может быть оторван от условного рецепта: например, в профиле пользователя может выводиться список всех его комментариев (как здесь) или в сайдбаре может выводиться список всех последних комментариев (как на vc.ru).

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

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

    TLDR: Не хотите - не оборачивайте, не случится ровным счётом ничего. Это всего лишь рекомендация и примеры в них для семантических тегов иногда притянуты за уши, потому что эти теги в большинстве своём не решали какие-то реальные проблемы, а были введены для красоты, которая у каждого своя.
    Ответ написан
    7 комментариев
  • Почему C# не кроссплатформенный?

    @DeskundigeICT
    C# - это язык программирования, который был разработан компанией Microsoft в конце 1990-х годов. Он основан на концепции виртуальной машины, которая называется Common Language Runtime (CLR). CLR - это среда, которая исполняет код, написанный на C# или других языках, поддерживающих стандарт .NET. CLR обеспечивает некоторые преимущества, такие как управление памятью, безопасность, отладка и т.д.

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

    Изначально, Microsoft разрабатывала CLR только для своей операционной системы Windows, которая была самой популярной и востребованной на рынке. Это означало, что C# был привязан к Windows и не мог работать на других платформах, таких как Linux или Mac OS. Это было одним из основных отличий от Java, которая имела виртуальную машину Java (JVM), которая была доступна для многих платформ и обеспечивала полную кроссплатформенность.

    Со временем, появились проекты, которые пытались сделать C# кроссплатформенным, используя открытые стандарты и спецификации .NET. Самым известным из них является проект Mono, который начался в 2001 году и продолжается до сих пор. Mono - это реализация CLR и библиотек .NET для Linux, Mac OS и других платформ. Mono позволяет запускать многие приложения, написанные на C#, на разных платформах, но не без ограничений и проблем. Например, Mono не поддерживает все возможности и технологии, которые есть в оригинальном .NET Framework от Microsoft, такие как Windows Forms, WPF, ASP.NET и т.д. Также, Mono может иметь различия в производительности, совместимости и стабильности по сравнению с .NET Framework.

    В последние годы, Microsoft стала более открытой и поддерживающей кроссплатформенность. Она выпустила новую версию .NET, которая называется .NET Core, которая является модульной, легковесной и кроссплатформенной реализацией CLR и библиотек .NET. .NET Core поддерживает Windows, Linux и Mac OS, а также позволяет разрабатывать веб-приложения, мобильные приложения и микросервисы на C#. .NET Core является будущим .NET и планируется объединить его с .NET Framework и Mono в единую платформу, которая будет называться .NET 8.

    Таким образом, можно сказать, что C# становится все более кроссплатформенным, но это не значит, что он работает на чем угодно. Он все еще зависит от наличия реализации CLR для конкретной платформы, а также от совместимости и поддержки различных технологий и библиотек, которые используются в приложениях на C#. В этом смысле, Java все еще имеет преимущество в кроссплатформенности, так как JVM более универсальна и доступна для большего числа платформ.
    Ответ написан
    1 комментарий
  • Как намекнуть начальству, что agile не избавляет от тз?

    vabka
    @vabka
    Токсичный шарпист
    1. Agile - это про то что люди должны договариваться. По тому надо не намёки делать, а говорить прямо и предметно.

    2. Вот вы говорите, что вам нужно ТЗ. А зачем вам оно нужно?
    Вам не понятна та постановка, которая описывается в карточках?
    Есть неоднозначность?
    Уже есть примеры, когда от этой неоднозначности пострадал продукт (например из-за необходимости переделывать)?

    Или вам нужно не ТЗ, а виденье того, чем в итоге должен стать продукт?
    Не понятно, для чего вообще все эти карточки перекладываются?
    Если так, то, вероятно, вам нужно не ТЗ, а какие-то OKR-ы, чтобы можно было от них отталкиваться при составлении задач.

    Возможно, произошла мискоммуникация между вами и заказчиком. Возможно, заказчик действительно ожидает от вас (команды) самостоятельности при составлении задач - по сути сочетание в себе и менеджера и аналитика.
    Это нормально, но нужно этот момент тоже прояснить.
    Ответ написан
    6 комментариев
  • Axios vs Fetch NodeJS - CPU and Memory usage сравнение?

    liaFcipE
    @liaFcipE
    Зачем вы сравниваете эффективность таких вещей? Там же разница будет на уровне погрешности (по моему мнению).

    Я на нашел сходу инфы о том, что нативный fetch основан на node:http, мне казалось это отдельный WebAPI, со своей спецификацией.

    Просто выберите то, что удобнее и проще. Fetch прост, с минимум фич, в то время как Axios - полноценный фреймворк, который что только не умеет.

    В крайнем случае - напишите бенчмарк, дело 5ти минут, но сомневаюсь, что там будет что-то интересное.
    Ответ написан
    Комментировать
  • Как разрабатывать приложение Spring, чтобы каждый раз не деплоить его на сервер для отладки?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Идея умеет запускать одной кнопкой. И вроде даже обновлять код без остановки приложения.
    Ответ написан
    1 комментарий
  • В каком контексте значение класса String является неизменяемым в отличии от StringBuilder?

    xez
    @xez Куратор тега Java
    TL Junior Roo

    Почему нужно было помимо класса String создавать дополнительные классы по типу StringBuilder?

    Потому, что String - иммутабельный класс. Чтобы конструировать строки как раз добавлены StringBuffer (в версии 1.0) и StringBuilder (в 1.5).

    В данном примере строка s спокойно изменяется путем конкатенации, что аналогично sb.append

    В итоге у вас каждый раз создается новый объект. Не всегда это бывает уместно.

    2. Почему все методы StringBuilderнельзя было поместить в класс String, чтобы не плодить классы строк?

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

    3. Почему s.equals(sb) равно false, если мы сравниваем только значения, а не ссылки

    Потому, что вы сравниваете разные объекты. StringBuilder - это не String.
    Ответ написан
    Комментировать
  • Можно ли купить операционную систему macOS?

    @dronmaxman
    VoIP Administrator
    может купит операционную систему macOS легально как нибудь?

    Она продается вместе с оборудованием, легально можно установить только на технику apple.

    а к их операционной системе я привык.

    Поставь linux и настрой окружение что бы было похоже на macOS или хакинтош.
    Ответ написан
    Комментировать
  • Есть сервера, которые стоит написать именно на Java, а не на Node?

    @Everything_is_bad
    что для REST серверов лучше Node не найти
    это твой главный неправильный вывод, лучший будет тот, который написан на технологии, которую лучше всего знает исполнитель.

    Например стриминговый сервер или сервер для чата, он же относится к разряду типичных запрос/ответ
    еще одна большая ошибка, вообще всё смешал в кучу, "стриминговый" это больше про максимальный pull c сервера, "чата" это про полноценный обмен в обе стороны, а "запрос/ответ" это про базовый http и он для этих обоих случаев, очень невыгодная стратегия, поэтому для них в http написаны свои частные протоколы, например, websocket для нормальной реализации чатов.
    Ответ написан
    5 комментариев
  • Как проинициализировать по умолчанию переменную?

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

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Прежде всего, нет никакого "между". Сеньор - это грейд, а архитектор - это должность. Программисты в архитекторы не вырастают, а уходят, как и в менеджмент. По сути же вопроса, парадигмы, шаблоны проектирования и прочее можно выучить по книжкам, но по-настоящему понять можно только попав в условия, для которых они были придуманы. То есть это больше практический навык длительной работы в крупных, быстроизменяющихся проектах с большой командой. Ну, и стоит заметить, что проектирование систем - это не столько код, сколько стандарты, спецификации, схемы и ооочень много общения с бизнесом, разработкой, эксплуатацией, безопасниками и т.д. и т.п.
    Ответ написан