@kotlin_lang

Страница 894 из 982
Igor
27.09.2018
08:18:48
Например?
Ну, вот вам сходу: 1) Своя очеpедь отпpавки с возмжностью модификации неотпpавленных сущностей. Event-sourcing, если по-пpoстoму; 2) Есть частые изменения сеpвеpного API, и нужно подстpаиваться под них; очень удобно деpжать почти точную копию сеpвеpной БД с данными в pамках сессии, иначе с мигpациями будет полный пипец;

для двух с половиной записей?
Ну, сейчас в сpеднем 100к записей в двух пpиложениях на сессию. В пpедыдущем пpоекте было под 10-15к.

Vladimir
27.09.2018
08:19:56
И что ему прям реляционка нужна?
Вполне может понадобиться. Другое дело, что, как мне кажется, надо делать что-то необычное, чтобы для работы с ней понадобился JDBC, jOOQ, ORM и всё такое.

Google
Maxim
27.09.2018
08:20:21
Ну, сейчас в сpеднем 100к записей в двух пpиложениях на сессию. В пpедыдущем пpоекте было под 10-15к.
и если кому то удобнее работать с ORM, чем c твоим jooq - то room весьма полезная штука, не так ли?)

Igor
27.09.2018
08:20:54
Нет, вы не подумайте, не имею ничего пpотив NoSQL в пpоектах, и опять же, экспеpиментиpовал с Berkeley DB в пpоде на ведpе, но как-то нет. Даже несмотpя на кажущуюся пpостоту, потом будут возникать пpоблемы по меpе pазвития пpоекта и изменений в API.

Vladimir
27.09.2018
08:21:23
Оффтопик получается

Igor
27.09.2018
08:22:04
Что за предметка, если не секрет?
Если совсем общо – маpшpуты обхода объектов, по каждому из котоpых отпpавляется набоp динамических полей + набоp объектов с еще одним набоpом динамических полей. Там долгая истоpия, если интеpесно – в лс)

Igor
27.09.2018
08:23:03
Не путай «не умение» и «не желание». Зачем ее писать, вспоминать об этом каждый раз, если можно этого не делать.
Ну это уже выбоp команды, но я бы не поленился написать одну (sic!) стpочку, если бы это позволило мне избавиться от целой зависимости на библиотеку.

> Есть частые изменения сеpвеpного API Какая-т жесть, но для "подстраивания" есть Swagger и когда на клиенте ~0% стей, это очень гладко проходит (миграции НЕ НУЖНЫ)
Согласен. Если нет явного указания на то, что пpиложение должно pаботать полностью оффлайн. Увы, последние пpоекта тpи пpосят full-offline mode, так что без "умного кэша" никуда.

Konstantine
27.09.2018
08:23:42
Igor
27.09.2018
08:26:04
А потом ещё строчку, а потом ещё и ещё, а вот ты уже забыл где-то и утечка. Маладец.
Ну, тут уже вопpос к код pевью, тестиpованию и в целом вниманию пpи написании кода. Хотя, если я, пpогpаммиpуя на пике балмеpа уже почти год, не забывал об этом ни pазу, то не думаю, что это так веpоятно. А вообще – на code review такое пpям глаз pежет же, нет? Ладно, действительно оффтоп, если есть какие-то дополнительные вопpосы/желание поспоpить на эту тему – welcome в личку

Igor
27.09.2018
08:30:34
Куда катится этот мир, если состояние не-на-сервере теперь называется "умным кэшем"...
Не пpосто состояние, а состояние, котоpое меняется, должно быть веpсиониpованным, имеет весьма сложную стpуктуpу и плюс в нем тонна данных.

Google
Konstantine
27.09.2018
09:43:53
Kotlin'овский Pair умеет сериалайзить. А как он поступит, если в него запхать объекты которые не Serializable?

Mi
27.09.2018
09:47:08
полагаю не так, как ты рассчитываешь

Alexander
27.09.2018
09:49:04
что, в общем-то, логично +_+

Konstantine
27.09.2018
09:49:06
Странное решение выходит.

Vladimir
27.09.2018
09:50:39
Странное решение выходит.
Странное что, джавовая сериализация сама по себе?

Konstantine
27.09.2018
09:51:10
Странное что, джавовая сериализация сама по себе?
Странно, что пару сделали сериализиующей.

Vladimir
27.09.2018
09:51:52
Странно, что пару сделали сериализиующей.
Странно было бы, если нет. Тогда Pair<Int, Int> нельзя было бы сериализовать. Как и любую коллекцию, например.

Konstantine
27.09.2018
09:59:05
Vladimir
27.09.2018
09:59:37
Vladimir
27.09.2018
10:00:54
JVM'овская.
Я, может, не там ищу, но не вижу в JDK такого класса

Да и коллекции тоже не Serializable.
Все реализации Serializable

Konstantine
27.09.2018
10:01:08
Ой, блэт, не JVM, а андроидовская.

Vladimir
27.09.2018
10:01:51
Ой, блэт, не JVM, а андроидовская.
Ну так на андроиде не принято использовать сериализацию, ничего удивительного

Konstantine
27.09.2018
10:02:25
Vladimir
27.09.2018
10:02:55
Нелогичным было бы не давать людям, которые используют сериализацию, возможность сериализовывать простой класс, который никак не зависит от окружения и может использоваться везде.

Есть Parcelable. Его оно тоже не реализует.
Я бы дико удивился, если бы это было иначе, ведь это андроидовский класс

Google
Vladimir
27.09.2018
10:07:58
Как и класс пары.
Что? Кажется, дискуссия зашла в тупик. Если забыть про существование android с его SDK, всё становится очень логичным.

Konstantine
27.09.2018
10:08:16
Не считаю это логичным.

Anton
27.09.2018
10:10:31
Всем привет. Есть кто юзает Exposed? Вы пользуетесь какими то дополнительными инструментами миграций? Или дефолтного функционала createMissingTablesAndColumns() достаточно для поддержания схемы в актуальном состоянии?

Alexandr
27.09.2018
10:12:42
Всем привет. Есть кто юзает Exposed? Вы пользуетесь какими то дополнительными инструментами миграций? Или дефолтного функционала createMissingTablesAndColumns() достаточно для поддержания схемы в актуальном состоянии?
генерация схемы бд ормками в принципе плохая затея, настраиваете flyway и живете спокойно, не боясь что что-то сломается или затрутся данные

Anton
27.09.2018
10:16:43
генерация схемы бд ормками в принципе плохая затея, настраиваете flyway и живете спокойно, не боясь что что-то сломается или затрутся данные
Насколько я понял (поправь если ошибаюсь) Exposed умеет только в code-first. Поддерживать sql-скрипт и классовую модель в актуальном состоянии вручную кажется избытычной работой

Alexandr
27.09.2018
10:17:41
Насколько я понял (поправь если ошибаюсь) Exposed умеет только в code-first. Поддерживать sql-скрипт и классовую модель в актуальном состоянии вручную кажется избытычной работой
смотри, все ормки работают как code first, плюс миграций в следующем: ты контроллируешь схему, у тебя всегда четко определенный результат выполнения миграций, если твоя орм генерит схему, то у тебя может быть минимум 3 трабла: 1 - апнул версию и сгенерировалась иная схема, бэкап уже не накатишь; 2 - схема, сгенеренная апгрейдом существующей и накатыванием на чистую бд может дать разный результат; 3 - твоя ормка не знает как мигрировать твои данные и может либо свалиться, либо просто дропнуть данные

ормки валидируют схему в бд со своими энтитями, так что рантаймовых ошибок почти не будет

> Поддерживать sql-скрипт и классовую модель в актуальном состоянии вручную кажется избытычной работой вот ни одним местом, а знаешь почему? твои изменения в коде отображаются ddl дифами в миграции, у тебя там не будет одного файла с итоговой схемой, у тебя будет набор скриптов, которые отображают эволюцию структур данных и накатываются последовательно, большой сложности написания миграций не бывает

ну и да, в миграции ты опишешь как правильно мигрировать данные и чем заполнить все твои non null поля, ибо в противном случае у тебя не получится их добавить

dimiii
27.09.2018
10:30:15
Все дружно взялись оффтопом обсуждать sql/orm, но почему-то никто не поинтересовался что за шарага такая и что за уровень образования, когда студент лепит orm в качестве курсовой. Я бы понял, если бы это техникум какой был, но ведь скорее всего ВУЗ. Отвратительно.

Георгий
27.09.2018
10:31:53
Походу вы в своих $city не в курсе, чем живут ВУЗы в менее технически продвинутых регионах))

Да и техникумы тоже.

У меня в техникуме дипломная была "симулятор остывания воды". Пздц интересно было писать((

Valeriy
27.09.2018
10:32:40
ща бы нормальному программированию учили в вузе, смешно же

в любом городе

Алексей
27.09.2018
10:32:47
Есть проект с использованием Exposed. Каждая миграция - это боль. Любой чувствительный запрос (посчитать число одних записей, других, высчитать разницу) - уже страх потерять в производительности

Так что на проектах а-ля халоворлд "ниче, пойдет"

Google
Алексей
27.09.2018
10:33:25
Для всего остального лучше сразу нормальную бд делать

Anton
27.09.2018
10:34:12
фирштейн?
Я понял. Я уже сталкивался с проблемами, что при миграции схемы бд средствами ОРМ появляются проблемы с миграцией данных на новую схему. Думал, что может существуют инструменты, которые позволяют поддерживать целостность средствами Exposed'а. Буду подключать flyway, спасибо)

Алексей
27.09.2018
10:34:24
Если студент не хочет - его либо отчисляют, либо дотягивают

dimiii
27.09.2018
10:34:31
У меня в техникуме дипломная была "симулятор остывания воды". Пздц интересно было писать((
Георгий, а здесь пожалуй не соглашусь. Тут хотя бы какая-то наукоемкость присутствует. В качестве приложения. Заменить расчет на хосте кластером, а "остывание" воды - мировым океаном - и вот уже практическая полезность.

Алексей
27.09.2018
10:35:57
Если студент не хочет - его либо отчисляют, либо дотягивают
И в том, и в другом случае он говорит, что его ничему не научили. Правда, во втором еще хвастается тем, что ничему не научили, а он выпустился

Георгий
27.09.2018
10:36:36
Георгий, а здесь пожалуй не соглашусь. Тут хотя бы какая-то наукоемкость присутствует. В качестве приложения. Заменить расчет на хосте кластером, а "остывание" воды - мировым океаном - и вот уже практическая полезность.
Ммм ну так-то да. Но тут больше громкой мотивации чем технической задачи. Там по сути была просто foo(time, startTemperature, environmentTemperature), которая вызывалась по таймеру и обновляла значение на морде. Программка писалась минут сорок, текст дипломной - дня три))

Admin
ERROR: S client not available

Andrey
27.09.2018
10:57:29
Программированию можно научиться только одним способом: 1. Изучаешь основы структур данных и алгоритмов + дискретную математику. Это не привязано к конкретному языку. 2. Изучаешь основные практики defensive programming. 3. Изучаешь синтаксис языка. 4. Программируешь, программируешь и ещё раз программируешь. Желательно в команде, где есть код ревью и требуют написания хороших тестов. На ревью подскажут и что делаешь не так, и как лучше, и что почитать, чтоб впредь реже писать говнокод. Последний пункт самый важный КМК и должен присутствовать на всех остальных этапах как часть. Программирование - прикладная инженерная дисциплина, где нужно много практики, но и основы мат части тоже надо представлять.

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

Alexandr
27.09.2018
11:06:27
А где команду взять?:)
пойти работать

Timophei
27.09.2018
11:06:50
пойти работать
слишком сложно, давай по новой

Alexandr
27.09.2018
11:07:55
слишком сложно, давай по новой
похоже я огорчу, но мир состоит из сложностей

Timophei
27.09.2018
11:08:25
похоже я огорчу, но мир состоит из сложностей
вот блин, а я думал все будет просто

Алексей
27.09.2018
11:09:11
пойти работать
Без опыта:) а без опыта не берут

А опыт берется из командной работы

Хмммм

Google
Алексей
27.09.2018
11:09:42
Ладно, на самом деле, я знаю, откуда опыт работы в команде взять:)

Так что остаются хакатоны, людумдэйры, олимпиадки и прочие активности + стажировки, где ты не человек в команде, а просто человек, потому что работу получат не все

Andrey
27.09.2018
11:10:48
А где команду взять?:)
Ну первый опыт командной работы у меня был при совместной работе над курсовой с парой одногрупников.

Alexandr
27.09.2018
11:11:47
ну можешь и не джуном

я вот на первое место работы пошел и сразу мидлом

Timophei
27.09.2018
11:12:13
лидом возьмут, не парься ?

Алексей
27.09.2018
11:12:29
это оффтоп всё

Andrey
27.09.2018
11:12:43
По мне, так одна из важнейших вещей, которую даёт ВУЗ - возможность пообщаться по интересным тебе темам с теми, кому они тоже интересны (одногрупники и преподаватели). Если студент этой возможностью не пользуется - он многое теряет в плане образования.

Boris
27.09.2018
11:14:36
Andrey
27.09.2018
11:14:54
это если ты верно выбрал специальность в 17-18 лет на которую поступил
Это да. У меня выбора не было: родители - инженеры, да и я с детства любил всё разбирать, смотреть, как оно устроено.

Алексей
27.09.2018
11:15:14
иди джуном, возьмут
Ну дошло до того, что я сейчас подаю на джуна, потому что вместо rx использую котлиновские каналы и это работает (на самом деле, просто хвалёная "удалёнка" нигде не работает - всем нужно, чтобы работник в офисе был)

Алексей
27.09.2018
11:17:36
Если всем нужен работник в офисе, откуда тогда берутся люди работающие удаленно? ?
Насколько я понимаю, это или уже синьоры, или те, кто в компании какое-то время работает

ну то есть прособеседоваться онлайн и начать работать по удалёнке мало кого устраивает

Особенно если подаваться на джуна

Страница 894 из 982