@oop_ru

Страница 746 из 785
Dmitry
09.09.2018
23:19:07
файрвол и DMZ? )

Adel
10.09.2018
11:08:38
добрый день. есть что обсудить про ООП?

эх :)

Google
Adel
10.09.2018
11:14:06
не. там какая-то стена чтоли... да вощем пофиг :)

Dmitry
10.09.2018
11:14:28
огненная!

Adel
10.09.2018
11:14:40
не. кислотное облако :)

F01134H
10.09.2018
11:17:23
Если писать на дарте - значит кукарекать о нем каждые 5 минут - то это еще худший бэд трип

И типа это, если ты не бот, то надо лечиться

F01134H
10.09.2018
11:23:19
Нет, плохо говорить о нем каждые 5 минут

Kernel
10.09.2018
11:23:29
было бы с кем (

никто не пишет на дарте

кто чей фейк?

Konstantin
10.09.2018
11:52:20
Google
Kernel
10.09.2018
11:52:50
а я на solidity
это какой-то тяжелый наркотик?

Adel
10.09.2018
11:53:24
это ж мода новая

язык для этой.. криптовалюты Виталика

Бутерина

Kernel
10.09.2018
11:54:28
он же умер?

Adel
10.09.2018
11:56:19
Виталик - нет. Этериум - тоже нет.

экая вы деревня ей богу :)

Kernel
10.09.2018
11:56:46
странно, я слышал что Бутерин умер

но крипта зашквар, так что могу ошибаться

Adel
10.09.2018
11:57:19
это наверно спам-бот тебе рассказал

Kernel
10.09.2018
11:57:39
я не общаюсь с ботами

я еще не на столько подсел на JS кодинг

F01134H
10.09.2018
11:57:55
но принимаешь их во внимание

Kernel
10.09.2018
11:58:32
но принимаешь их во внимание
тебя я тоже принимаю во внимание, но ты же не против )

Eugene
10.09.2018
12:00:27
очень странный этот эфир и методы работы с ним странные.

Adel
10.09.2018
12:01:53
да отлично все. при желании могут взять и откатить операции. эвент сорсинг! :)

форкнуть и все такое...

Konstantin
10.09.2018
12:18:12
я еще не на столько подсел на JS кодинг
работа с нодами обычно на js через либу web3

что за копипаст ? не понимаю

Sergey
10.09.2018
12:24:27
что за копипаст ? не понимаю
это как твой код, только не код

Google
Sergey
10.09.2018
12:24:39
copy & paste

Konstantin
10.09.2018
12:25:24
copy & paste
Опять не понимаю. Я пишу контракты на solidity с нуля. Про твой код и не твой не понимаю

Adel
10.09.2018
12:26:34
Konstantin
10.09.2018
12:51:44
Если про токены, то да.

F01134H
10.09.2018
15:12:00
@fes0r а когда стоит инварианты предпочитать прекондишенам и наоборот?

Sergey
10.09.2018
15:12:11
а ты можешь избавиться от стэйта приложения?)

инварианты то у тебя в любом случае будут

F01134H
10.09.2018
15:13:43
Я имею ввиду, когда стоит в методе класса делать проверки, а когда стоит делать их перед подачей в этот метод

Sergey
10.09.2018
15:13:46
и что значитт "предпочитать" - прекондишены без инвариантов всегда лучше, но часто у тебя не очень большой выбор

Я имею ввиду, когда стоит в методе класса делать проверки, а когда стоит делать их перед подачей в этот метод
"делать перед подачей в метод" это не про прекондишены, это про размазывание логики и нарушение инкапсуляции.

F01134H
10.09.2018
15:14:41


Aleh
10.09.2018
15:17:15
Я имею ввиду, когда стоит в методе класса делать проверки, а когда стоит делать их перед подачей в этот метод
перед подачей может быть разве что выражено в том, что ты данные заворачиваешь в какой-то другой объект, который уже все проверяет в себе. Пример ты не передаешь в User’a email строкой, а передаешь объект типа Email, который представляет собой валидный email

F01134H
10.09.2018
15:17:29
Во, как раз такая ситуевина

Aleh
10.09.2018
15:17:35
но тут нет никакого предпочтения инвариантов прекондишенам

Sergey
10.09.2018
15:18:07
class { private $x; // $x >= 0; public function add(int $y) { assert($y >= 0); // precondition $this->x += $y; // side effect (state changed) } public function sub(int $y) { assert($y >= 0); assert($y <= $this->x); // check invariant $this->x -= $y; // side effect } }

F01134H
10.09.2018
15:18:33
Хмммм

Google
Sergey
10.09.2018
15:19:21
но это уже прекондишен другого объекта?
фактически тот объект которому нужно оперировать имейлы введя правило "всегда должен быть валидный email" и делигировав это на прекондишены объекта Email в целом просто избавился от лишней проверки.

Д - декомпозиция

knopkod4v
10.09.2018
15:19:47
может тогда можно сказать, что это косвенный прекондишен объекта принимающего email =\ но это так, пердение в слух, т.к. что-то никаких выводов из этого сделать не получается

Aleh
10.09.2018
15:20:02
помогает выразить прекондишен в сигнатуре метода, проверяется в компайл-тайме и все такое

что ты хочешь видеть, читая код некого User/Profile? class User { constructor(email: string) { if(!isValidEmail(email)) throw new Error(“Not valid”) this.email = email } } —— class User { constructor(email: Email) { this.email = email } }

knopkod4v
10.09.2018
15:21:34
Д - декомпозиция
посредством Д - делегирования :D Тут можно придумать новую аббревиатуру и стать егором256 :D

Sergey
10.09.2018
15:22:17
посредством Д - делегирования :D Тут можно придумать новую аббревиатуру и стать егором256 :D
все это было написано в книжке Дэвида Парнаса в далеком 1970-ом

knopkod4v
10.09.2018
15:22:36
все это было написано в книжке Дэвида Парнаса в далеком 1970-ом
тем лучше, значит об этом уже почти никто не помнит :D

Sergey
10.09.2018
15:22:57
http://extras.springer.com/2002/978-3-642-59413-7/3/rom/pdf/Parnas_new.pdf

knopkod4v
10.09.2018
15:24:25
биг спс! Блин, не успеваю читать(в смысле при этом понимать) первоисточники, сегодня только про MVC сел почитать =\

Anton
10.09.2018
18:34:11
Задался вопросом. и смог решить после сортировки за O(N). И скорее всего есть возможность O(N) и без сортировки, но памяти больше нужно. http://sandbox.onlinephpfunctions.com/code/8fec3b85729b9e787da3836ebcaf5e3c3c2e1dcb Времени кстати минут 40 потратил.

Страница 746 из 785