powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Новый язык для java разработчиков - Kotlin
18 сообщений из 118, страница 5 из 5
Новый язык для java разработчиков - Kotlin
    #37669759
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovVoDAзадача в том, чтобы null не мог придти туда, где его не ждут. в Kotlin это реализуется контрактом и статической проверкой.Где гарантия, что код не может нарушать контракт?

P.S. Если бы всё было так просто - доказательство корректности программ уже вовсю использовалось бы.Тут пробралось недопонимание. Спешу его развеить Kotlin поддерживает только контракт уровня java плюс проверка NotNull/Nullable.

Контракт в том смысле как вы его указали (т.е. контракт для математического обоснования валидности приложения) в kotlin нет. Как нет и в других языках.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37669880
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в принципе, кардинально ничего особо не меняется. Поэтому контракты так мало распространены.
(я сам assert() как то мало пишу - обрабатываю руками индивидуально)
Code Contracts в .NET 4.0
http://habrahabr.ru/blogs/net/91243/
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class Order
{
    List<OrderItem> orderedItems = new List<OrderItem>();
    decimal orderPrice = 0;
    public void MakeNewOrder(OrderItem orderItem)
    {
      // precondition
      Contract.Requires<ArgumentNullException>(orderItem != null);
      Contract.Requires(Contract.ForAll(orderedItems, p => p != orderItem));
      // postcondition
      Contract.Ensures(Contract.Exists(orderedItems, p => p == orderItem));
      Contract.Ensures(orderPrice > Contract.OldValue(orderPrice));
      orderedItems.Add(orderItem);
      orderPrice += orderItem.Price;
    }

    [ContractInvariantMethod]
    private void ObjectInvariant()
    {
      Contract.Invariant(orderPrice > 0);
    }    
}
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37669894
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123(я сам assert() как то мало пишу - обрабатываю руками индивидуально)
[/src]
assert'ы к контрактному программированию никакого отношения не должны иметь. У них вообще очень ограниченная область применения - проверять такое, чего просто не может быть никогда. Использовать можно только в private методах и только при отладке/тестировании. Обычно они отключены, так что еще стоит помнить об этом.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37669912
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvPetro123(я сам assert() как то мало пишу - обрабатываю руками индивидуально)
[/src]
assert'ы к контрактному программированию никакого отношения не должны иметь. У них вообще очень ограниченная область применения - проверять такое, чего просто не может быть никогда. Использовать можно только в private методах и только при отладке/тестировании. Обычно они отключены, так что еще стоит помнить об этом.
это ваше imho.
У меня, Вики, и других оно другое.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37669941
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Leonidvassert'ы к контрактному программированию никакого отношения не должны иметь. У них вообще очень ограниченная область применения - проверять такое, чего просто не может быть никогда. Использовать можно только в private методах и только при отладке/тестировании. Обычно они отключены, так что еще стоит помнить об этом.
это ваше imho.
У меня, Вики, и других оно другое.Это мнение Sun которая и ввела assert-ы в язык. И их официальная рекомендация ;)
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37669946
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кста, я хоть немного конкретики-кода внёс в обсуждение.
Самый прикол, что быстрее нашёл его в Net, а не в Kotlin.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37669991
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123У меня, Вики, и других оно другое.
У тех, кто читает вики и других - возможно. У тех, кто читает документацию, оно такое же, как у меня:
http://docs.oracle.com/javase/1.4.2/docs/guide/lang/assert.html
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37670025
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidv
ты программист?
Приведи разницу в коде.
Если разница будет очевидна, то то слово assert в данном топике не упоминаем.
Если есть общность \ этапы перехода на контракты, то не флеймь.
Нужно не только ссылки давать, а делать выводы по ним.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37670030
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123кста, я хоть немного конкретики-кода внёс в обсуждение.
Самый прикол, что быстрее нашёл его в Net, а не в Kotlin.конкретика это хорошо. в Net что контракты есть это тоже хорошо. через пару-тройку лет станет очевидно имеет это хоть какое нибудь преимущество или тупо повышает трудозатраты без реальных бонусов. ;)
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37670040
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Нужно не только ссылки давать, а делать выводы по ним.
Ну так возьми и сделай.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37670049
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvPetro123Нужно не только ссылки давать, а делать выводы по ним.
Ну так возьми и сделай.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37670051
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidv,
флейм?
______________________________________________
"Не понял" от Лёни 11906276 и чем всё закончилось 11910058
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37670054
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDAPetro123кста, я хоть немного конкретики-кода внёс в обсуждение.
Самый прикол, что быстрее нашёл его в Net, а не в Kotlin.конкретика это хорошо. в Net что контракты есть это тоже хорошо. через пару-тройку лет станет очевидно имеет это хоть какое нибудь преимущество или тупо повышает трудозатраты без реальных бонусов. ;)
да.
Я когда копал, увидел там спринг-контракты 8-). Но инфы практически никакой.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37670844
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNты сильно не прав.В чём?
В ограниченности статической верификации?
В несоответствии контракта условиям эксплуатации?
В наличии злоумышленников?
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37670855
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovZyK_BotaNты сильно не прав.В чём?
В ограниченности статической верификации?
В несоответствии контракта условиям эксплуатации?
В наличии злоумышленников?
в том, что не считаешь ее полезной. а хочешь каких-то мифических возможностей.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37670889
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNв том, что не считаешь ее полезной.Чтобы это всё стало полезным - должно существенно измениться соотношение времён на разработку/отладку и тестирование.а хочешь каких-то мифических возможностей.Я привожу несложные примеры на которых будет ломаться статическая проверка контрактов.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37670969
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЯ привожу несложные примеры на которых будет ломаться статическая проверка контрактов.
- доктор, мне больно, когда я делаю так.
- не делайте так.
...
Рейтинг: 0 / 0
Новый язык для java разработчиков - Kotlin
    #37671011
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN- не делайте так.Вот поэтому контракты и не используются ;)
...
Рейтинг: 0 / 0
18 сообщений из 118, страница 5 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Новый язык для java разработчиков - Kotlin
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]