Pull to refresh
21
0
Антон @kosmonaFFFt

Пользователь

Send message

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

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

С таким API как в задачке должно быть две пары DC->"some-org" и DC->"ru".

import java.util.List;
import java.util.Map;

public class C5_Parser {

    private static final String dn = "CN=Ivanov Ivan Ivanovich,ADDR=Russia, Tatarstan rep., Kazan city, Some str.,bld. 404,OU=Development,DC=some-org,DC=ru";

    public static void main(String[] args) {
        List<Map.Entry<String, String>> parsed = parse(dn);
        System.out.println(parsed);
    }

    private static List<Map.Entry<String, String>> parse(String dn) {
        return null;
    }
}

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

Я писал не про отсутствие стандартов, а про специфику работы. Например архитектура - делаем сначала проект, потом можем строить по нему здания. Хоть 1000 по одному проекту. Но строительство каждого из этих зданий - это тоже длительный процесс. Или проектируем двигатель для автомобиля, потом производим двигатели, и производство тоже довольно значимая и длительная часть процесса, даже основная. А вот с ПО немного по другому - мы ПО проектируем один раз, если под производством подразумевать разработку, то производим один раз, и все. Нету этапа производства в 1000х штук. Создание копий не считаю производством, так как в сравнении с производством физических вещей почти ничего не стоит. В этом плане разработка позожа на проектирование и производство каких-то уникальных объектов, которые будут существовать в единичном экземпляре.

Если вводить в ИТ все эти замечательные вещи из машиностроения, то во сколько раз надо будет увеличивать штат работников и растягивать сроки? Ну и немного некорректное сравнение, т. к. в машиностроении деталь сначала проектируют, потом изготовляют, а в ИТ задачи по своей сути проектировочные, нет такого, что разработали проект кнопки на интерфейсе, и теперь надо изготовить партию в 1000 кнопок.

Напомнило.

В одной компании, где я работал, был проект. И было в том проекте некоторое количество интересных решений (на уровне отдавать в ответе сервиса всегда 200 ОК, а ошибку класть в поле error ответа, а если ответ успешный, то его класть в поле data, конечно же сериализовав его предварительно в строку). И когда я спросил у коллег, откуда это все взялось, мне ответили, что актер какой-то написал. Даже ссылку на статью про него скинули.

Я примерно 10 лет назад с таким упражнялся вот тут: https://habr.com/ru/post/151504/
Делал нечто похожее, но с помощью std::function. Никакой практической ценности я тогда из этого не извлек, но как упражнение для мозгов сгодилось.

Если мы начнём говорить о личных предпочтениях, то можно ли сказать, что джава для прода не подходит, потому что там репла нет?

Для моего прода подходит, для вашего видимо нет.

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

Скорее претензия к тому, что я беру понравившийся мне фреймворк, понравившийся мне драйвер к БД и сразу, сходу получаю проблемы. В той же Java я тоже сталкивался с проблемами зависимостей версий библиотек, и их не очень хорошей совместимостью с определенной версией application server, но там я столкнулся с этим один раз за примерно 8 лет работы, а не вот так вот сходу.

Ну а у меня конкретно в продакшене было, что одна библиотека требует C++03, а другая — C++11, и там бинарно несовместимые куски STL, поэтому получается весело.

Как я написал выше, бывает даже в Java. Вопрос, сколько раз и за какой период вы с этим сталкивались.

До CLion я для плюсов пользовался NetBeans'ом, но это было давно, в 2011-2015 примерно - писал всякие алгоритмы для аспирантуры. QtCreator довольно неплох, и тоже давно существует. VisualStudio мне лично не зашла, про нее ничего хорошего сказать не могу. Концепция редактор + плагины мне лично не заходит, хочу интегрированную среду разработки, чтоб вязл, и там сразу все есть. См. выше про идею.

Это называется repl. Зачем вам отладчик, когда у вас есть полноценный repl?

Вам вот заходит REPL, а я хочу отладчик. Хочу тыкать в IDE брекпойнты, смотреть как идет выполнение кода в разных случаях, видеть какие там реально данные за абстракциями спрятаны. REPL такой возможности не дает (или дает в неудобном для меня виде).

Но почему не servant?

Потому, что это был мой эксперимент с хаскеллем, и я захотел использовать Snap, деталей уже не помню, но чем-то он мне приглянулся. Возможно, понравилась их концепция снаплетов. С плюсами я таких проблем с зависимостями не помню, там вообще нечасто транзитивные зависимости мне попадались. Обычно цепочки зависимостей в плюсах, что я встречал, выглядели в стиле "библиотека для математики хочет blas и lapack, или что-то совместимое с ними".

Она до сих пор (clion, по крайней мере) даёт вполне ощутимый лаг при наборе текста.

Мне скорость именно набора вообще некритична, примерно 80% текста, что я пишу в IDE, она сама мне и генерирует, через всякие автоподстановки аргументов и прочие механизмы вроде Ctrl+Space, Alt+Enter и т. д. Мне больше важно, насколько хорошо IDE понимает контекст, и умеет в подстановку кода. Например написал obj->, получил список методов. Выбрал метод из списка, хочу подсказки по аргументам, да чтобы в соответствии с типами, именами и т. д. Или жмакнул хоткей на классе, получил заготовку юнит-теста для него.

У плюсов есть CLion, у хаскелля только плагин к идее, и это лучшее, что я видел из средств разработки под Haskell.

Отладка - кому как. Мне нужно. Я хочу ставить брекпойнты в ИДЕ, смотреть данные вживую, и писать куски кода внутри окошка evaluate expression, чтобы там был весь текущий контекст типа подключения к БД и прочего. У хаскелля только консольный недоотладчик, интеграции с редактором не видел.

Простенький проект у меня не получился со следующими штуками: stack для сборки и управления зависимостями. Snap в качестве веб-фреймворка. HDBC для работы с БД. Data.Aeson для JSON сериализации/десериализации. Вот вроде основное, что вспоминается. Поглядел сейчас на stackage, в текущем срезе lts 20.2 Snap отсутствует, добавлял его руками, и в итоге получал конфликт версий Base в транзитивных зависимостях после добавления HDBC и еще нескольких либ.

P.S. Эталоном инструментов разработки для меня является Idea или VisualStudio + ReSharper. Сравниваю все остальное с ними.

Лично мои аргументы, почему хаскеллю не место в проде, это инструментарий и инфраструктура. Под хаскелль нет нормальных средств разработки и отладки, и у него все плохо с библиотеками и фреймворками. Пробовал ради интереса создать простенький хеллоуворлд рест сервис, который умеет писать "хеллоу" в БД, так я с зависимостями и кофликтами версий разных либ прям запарился. И это при том, что я использовал stack, который решает кучу вопросов из этой серии. В общем хаскеллю сильно не хватает своего maven и своего spring boot. Ну и чего-то уровня Idea тоже хотелось бы.

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

Ни разу на работах не встречал ПХП, только Java/C#/Python на бэкенде. Но это скорее всего обусловлено спецификой - в энтерпрайзе ПХП непопулярен. Только в одном проекте из тех, в разработке которых я учавствовал, случайному человеку можно было попасть дальше страницы авторизации. И то там в основном справочная информация/статистика/форма обратной связи.

Есть один, довольно популяный в сибири сервис, с доменным именем из двух букв в зоне .ru.
Легко гуглится по запросу "интернет аукцион".
Покупал и продавал там некоторое количество мелочевки, пока жил в Красноярске.
Таких заскоков, как у авиты, не видел, но последний раз пользовался им примерно 4 года назад.
И там немного другая механика купли-продажи, ориентированная на аукцион с повышением цены.

Я раньше, до появления у меня ДМС, лечил зубы без анестезии, ибо зачем платить за нее деньги, если можно просто потерпеть?

Он может использовать и gcc. Не обязательно visual c++.

А системами контроля версий, типа git или mercurial не пробовали пользоваться? Я для себя mercurial открыл больше десяти лет назад, и все личные проекты долго в нем версионировал.

Есть еще неплохая либа для визуализации: VTK.
Хотел плюсануть в карму, но не смог. Оказалось, уже когда-то раньше за что-то плюсовал.
1
23 ...

Information

Rating
Does not participate
Location
Иннополис, Татарстан, Россия
Date of birth
Registered
Activity