Pull to refresh
44
0.1
Валерий Вырва @valery1707

Java backend

Send message

Ну если группа всего из двух, то тут как не вертись а дарить будут друг-другу.

Действительно, при запуске gradle.bat через виндовую консоль интерактивность появилась.
Жаль что gradle (это, по идее, как раз линуксовый вариант) не работает в git-bash под виндой :(

Я скачал текущую версию Gradle (7fc6e5abf2fc5fe0824aec8a0f5462664dbcd987), но gradle init ни разу не интерактивный:


$ /c/Distr/SDK/gradle-5.0/bin/gradle --version

------------------------------------------------------------
Gradle 5.0
------------------------------------------------------------

Build time:   2018-11-26 11:48:43 UTC
Revision:     7fc6e5abf2fc5fe0824aec8a0f5462664dbcd987

Kotlin DSL:   1.0.4
Kotlin:       1.3.10
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          1.8.0_161 (Oracle Corporation 25.161-b12)
OS:           Windows 7 6.1 amd64

$ /c/Distr/SDK/gradle-5.0/bin/gradle init --dsl kotlin
> Task :wrapper
> Task :init

BUILD SUCCESSFUL in 2s
2 actionable tasks: 2 executed

Создался wrapper и два, фактически пустых, файла: build.gradle.kts, settings.gradle.kts.
На сайте про интерактивность тоже ничего не пишут — у меня отработало прямо как в их же доке.


Да, тип проекта можно указать через параметр --type, но это не интерактивность.

В общем случае Comparable это про порядок, а не про идентичность и никто не гарантирует что если x.compareTo(y) == 0, то и x.equals(y) == true.
В JavaDoc Comparable.java описание контракта декларирует It is strongly recommended (though not required) that natural orderings be consistent with equals.
Так что использовать результат compareTo для идентичности так себе идея и правильно что её не используют.


А обёртки могут и появиться в следующих версиях или уже присутствовать в библиотеках. Это мало связано с языком как таковым.

Но нарушают предыдущее Коммит должен иметь форму: номер тикета: название тикета.
Или вы видите смысл в нескольких коммитах с одинаковым комментарием?


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


Но что делать когда каждый тикет описывает свою проблему часть которой фиксит твой коммит?

Так замутите — лицензия на карточки открыта.

Есть некоторые приколы. Например == использует equals, который работает совсем не так, как ожидает пользователь, например для BigDecimal. Поэтому BigDecimal("1.00") != BigDecimal("1.0"). В принципе не существенная проблема, но могли бы и обёртки для таких случаев добавить.

Тут всё как раз просто и логично и проистекает из начального тезиса: == использует equals
Всё остальное зависит от реализации equals в конкретном типе.
В данном случае эти действительно два разных числа и, кстати, они не равны по equals с BigDecimal("1"), и пользователь, раз уж использует специфические классы, должен об этом знать.
Это не проблемы языка.

Что-нибудь типа seq.map { it -> foo(it, 1); }.map { it -> bar(it, 2); }.filter { it -> it.getBaz() > 0; }.
Кстати, тут косяк котлина, что он не сказал
  • что можно написать короче
  • что вы используете ключевое слово как имя переменной

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

Вот тут хорошо сказали про ключи компилятора относительно варнингов

В данном моменте я как раз за Kotlin.
А уж если предположить что поля Point не наследники Number, то в Java и математические операторы использовать нельзя.
В случае такого варианта:


//Java (и то только если X/Y/Z иммутабельны)
point2.setZ(point1.getX().add(point1.getY()).multiply(point2.getX().subtract(point2.getZ())));

//Java (с переменные для "читаемости")
CustomNumber sum = point1.getX().add(point1.getY());
CustomNumber subtr = point2.getX().subtract(point2.getZ());
point2.setZ(sum.multiply(subtr));

//Kotlin
point2.z = (point1.x + point1.y) * (point2.x - point2.z)

Что в первом что во втором варианты Java-кода я не могу сходу опередить что там происходит — код приходится парсить глазами.
При этом Kotlin-код читается без проблем.

//Java
point2.setZ((point1.getX() + point1.getY()) * (point2.getX() - point2.getZ()));

//Kotlin
point2.z = (point1.x + point1.y) * (point2.x - point2.z)

Если вам нужны локальные переменные только для упрощения чтения кода — это уже о чём-то да говорит.
Если они нужны где-то ещё далее по коду, то пусть будут конечно. Только в Kotlin рекомендуется использовать val.

Коммит должен иметь форму: номер тикета: название тикета.

Название тикета может не отражать изменений которые были внесены для исправления этого тикета.


Один коммит должен относиться к одному тикету.

Если тикет маленький и локальный — конечно да.
А что делать если тикет большой и по логике разбивается на несколько крупных независимых изменений?

На днях мы запустили первое в России serverless облако — Rusonyx Serverless на базе платформы Swifty.

Компания рекламирует свой сервис в своём корпоративном блоге.

А сейчас есть возможность запросить такой приёмник бесплатно?

А вот кредит на 1000р под 0.5% в день на 3 дня — это 15р сверху, это значительно лучше чем выклянчивать у коллег или друзей косарь до получки.

Может и лучше, но всё равно плохо.
Кредит на 1000р под 0.5% в день стоит 5 рублей в день. Стоит только промахнуться с ожиданиями и уже не 3 дня, а все 5 (из которых 2, например, выходные) и это уже 25 руб. Внезапно задержали ЗП перед выходными — опять копеечка. Да не много, но совершенно пустых трат.


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


Как по мне так лучший вариант это кредитные карты с расширенным грейс-периодом или вовсе карты рассрочки.
Сейчас на рынке вполне достаточный выбор карт, с бесплатным выпуском и обслуживанием, предоставляющих расширенный грейс-период или рассрочку по платежам.
Расширенный грейс-период позволяет отложить погашение долга по кредитке на 30-50 дней — это прекрасно покрывает кейс занять до получки, причём при нулевых расходах как финансовых так и репутационных.
Карты рассрочки (по крайней мере одна) позволяет начать платить с конце следующего периода (купил DD.MM.YYYY (10 ноября), первый платёж 31.(MM+1).YYYY (31 декабря)), да ещё и с пропорциональной разбивкой суммы платежа по месяцам. Но только из списка сетей-партнёров.


Да, нужно понимать что кредитные карты это в первую очередь кредиты, а уже только потом карты.
И в случае несоблюдения правил конкретной карты можно попасть на штраф и/или проценты.
Штраф, скорее всего будет не 15 руб, а около 500-600. Зато проценты не 0.5% в день (182%/год), а 10-15%/год — то есть в 12-18 раз меньше.


Да, конечно штраф в 500 руб это 100 дней при 0.5%/день на займе 1000 руб — вроде карта хуже?
Но если исходный займ будет под чуть другие условия? Для варианта 2000 руб под 1%/день 500 руб набираются уже за 25 дней, а штраф по кредиту выпишут только через 30/50.


Если человек точно уверен что он отдаст эти деньги через X дней (при X < 30) так ли нужно платить безусловный барыш каким-то мутным типам если можно вообще не платить?


P.S.
И, если я правильно помню, 0.5%/день это условия для новых клиентов — для привлечения базы. При повторном займе процент будет скорее больше чем при первых займах.

Если уж браузер решил обратиться на grtatic.com вместо gstatic.com, то и сертификат он будет ждать на имя grtatic.com а получить сертификат на это имя владея сервером, обслуживающим этот адрес совсем не сложно.

Именно по этому я и задал свой вопрос — просто предлагать всем решение работающее в очень ограниченном диапазоне.
Чтобы было намёком на то Помощник Москвы совсем не решение.
Но сарказм понимают не всегда :)

Так в PR можно и просить обоснование, а внесение изменений через веб-интерфейс сейчас там очень простой.
Правда нужно чтобы PDF были в текстовом виде, а в собственно PDF компилировались как-нибудь.

Information

Rating
3,724-th
Location
Воронеж, Воронежская обл., Россия
Date of birth
Registered
Activity