
Fastumkruk ✅
16.06.2018
12:40:27
@Civiloid

Kirill
16.06.2018
12:43:09

Vladimir
16.06.2018
12:53:28
и что в mas[0] и т.п.?

Google


Fastumkruk ✅
16.06.2018
12:53:57
и что в mas[0] и т.п.?
Fastumkruk:
$m_shop = '';
$m_orderid = '1';
$m_amount = number_format(100, 2, '.', '');
$m_curr = 'USD';
$m_desc = base64_encode('Test');
$m_key = 'Ваш секретный ключ';
$arHash = array(
$m_shop,
$m_orderid,
$m_amount,
$m_curr,
$m_desc
);
/*
$arParams = array(
'success_url' => 'http:///new_success_url',
//'fail_url' => 'http:///new_fail_url',
//'status_url' => 'http:///new_status_url',
'reference' => array(
'var1' => '1',
//'var2' => '2',
//'var3' => '3',
//'var4' => '4',
//'var5' => '5',
),
);
$key = md5(''.$m_orderid);
$m_params = urlencode(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, json_encode($arParams), MCRYPT_MODE_ECB)));
$arHash[] = $m_params;
*/
$arHash[] = $m_key;
$sign = strtoupper(hash('sha256', implode(':', $arHash)));
?>
<form method="post" action="https://payeer.com/merchant/">
<input type="hidden" name="m_shop" value="<?=$m_shop?>">
<input type="hidden" name="m_orderid" value="<?=$m_orderid?>">
<input type="hidden" name="m_amount" value="<?=$m_amount?>">
<input type="hidden" name="m_curr" value="<?=$m_curr?>">
<input type="hidden" name="m_desc" value="<?=$m_desc?>">
<input type="hidden" name="m_sign" value="<?=$sign?>">
<?php /*
<input type="hidden" name="form[ps]" value="2609">
<input type="hidden" name="form[curr[2609]]" value="USD">
*/ ?>
<?php /*
<input type="hidden" name="m_params" value="<?=$m_params?>">
*/ ?>
<input type="submit" name="m_process" value="send" />
</form>
То что закоментированно, нас не интересует


Vladimir
16.06.2018
13:01:32
@Fastumkruk
~/go/src/test# php ./test.php
string(64) "5862d9cdf85856749ea2f07a0b44ce85ab1e544ceaf8e32906acdea02cd4c813"
root@doroboneko:~/go/src/test# go run ./main.go
5862d9cdf85856749ea2f07a0b44ce85ab1e544ceaf8e32906acdea02cd4c813
https://bpaste.net/show/78ce63148960
все одинаково считается
@Fastumkruk https://golang.org/pkg/strings/#Join

Fastumkruk ✅
16.06.2018
13:10:55
все одинаково считается
https://play.golang.org/p/4QrnpSLkpGQ
Соответсвует ли мой код на ГО, коду который я кинул выше на пхп? Если ошибаюсь, подскажите где.

Oleh
16.06.2018
13:14:44
Привет
мне нужна подсказка
я делаю игру
и там есть особи
я им сделал вот такой интерфейс
type InhabitInterface interface {
NextStep() (x, y int)
IsBeget() (bool, utils.MoveVect, InhabitInterface)
IsGoneAway() bool
Force() int
GotHit(from InhabitInterface)
GetPix() int
Draw(t pixel.Target, matrix pixel.Matrix)
}
друг говорит что лутше вынести метод Draw в другое место и инкапсулировать от структуры с логикой
стоит ли? или лутше все в одном месте сделать?
Что там по паттернам?

Pawel
16.06.2018
13:27:39

Alexey
16.06.2018
13:29:23
если есть только такие функции, в которых используются все методы, но нет таких в которых используется какой-то один (и появление невозможно), то это ок
взять сортировку например из стандартной библиотеки

Pawel
16.06.2018
13:30:17
Обычно в Го пишется функция, использующая интерфейс, и лишь потом при необходимости проводится рефакторинг, заключающийся в выносе отдельного интерфейса
Вот этот код с жирным интерфесом - это пример худщих практик из джавы

Alexey
16.06.2018
13:31:36
это да, но человек скорее всего из "очень ооп" языка

Google

Lesha
16.06.2018
13:39:29
И где можно про это почитать?

Pawel
16.06.2018
13:43:37
не понял вопрос про чем обусловлено.
почитать можно в доброй книге по Го Донавана Кернигана.
Метод интерфейса - это контракт типа. Чем сложнее контракт, тем больше трудностей с его реализацией и использованием. Соотв. 1 метод при прочих равных - это намного лучше 2
У меня в программах на Го сперва пяовляются типы, потом уже я смотрю на их общие методы, и только потом при рефакторинг формулирую абстракции их общего поведения в виде интерфейсов. Изначально же в программе никаких интерфейсов нет, ибо не нужно

Oleh
16.06.2018
13:55:40

Pawel
16.06.2018
13:57:13
Изначально думать об особи игрового поля как об объекте с определённым набором методов - это не правильно имхо.

Oleh
16.06.2018
13:58:05
Вопрос был такой
Нужно ли розделять в отдельные структуры логику особи и функции которые отвечают за гуи
Ну и инкапсулировать одно в другое?
Duck typing
Же
Кожно сделать інтерфейс который собирает в себе другие интерфейсы

Pawel
16.06.2018
13:59:43
нет смысла пихать всю логику в один тип
чем меньше ответственности у класса, тем проще его тетстить, дебажить и понять

Oleh
16.06.2018
14:01:31
Класов нету:)
Но ок

Pawel
16.06.2018
14:05:09
под классами я имею ввиду гошные struct, ООП в го делается через них
Вообще идея изначально всё делать на объектах класса - она плохая

Sergey
16.06.2018
14:08:59

Google

Pawel
16.06.2018
14:10:26

Sergey
16.06.2018
14:10:29
вообще, не давайте вредных советов, даже в рамках троллинга

Pawel
16.06.2018
14:11:11
ы?

Sergey
16.06.2018
14:12:57
> У вас плохой интерфейс. Обычно в Го интерфейс - это 1 метод. Три - это уже овердофига.
> Обычно в Го пишется функция, использующая интерфейс, и лишь потом при необходимости проводится рефакторинг, заключающийся в выносе отдельного интерфейса
> Вообще идея изначально всё делать на объектах класса - она плохая
говорю, жир из монитора потёк

Pawel
16.06.2018
14:14:21
по моему у вас в голове что-то протело и забрызгало экран

Lesha
16.06.2018
14:22:42
Я считаю не нужно гнаться именно за соблюдением 1 интерфейс - 1 метод. Это похоже больше на утопию, когда у тебя в коде сотня интерфейсов. В чем сложность поддерживать интерфейс с 2-3 методами? В чем не безопасность такого решения? Да, когда у тебя много мелких, тебе их легче объединять в композицию, но имхо, когда интерфейс логически не разделим, нет смысла его дробить.

Pawel
16.06.2018
14:30:23
а где я говорил что надо за этим гнаться? Гнаться надо за тем, чтобы не было оверинжиниринга с бесполезно переусложнёнными абстракциями

Slava
16.06.2018
14:39:57
В случае с игрой, где много энтити - лучше все через композицию делать

Pawel
16.06.2018
14:39:58
я не вижк чтобы методы из преведенного интерфейса были как-то связаны. И когда сперва появляется такой вот интерфейс, а потом к нему пишут реализацию - это такой классический джавоебизм, с которым я борюсь у себя в организации уже много лет

Slava
16.06.2018
14:40:13
Поддержу Павла в этом

Pawel
16.06.2018
14:40:31
спасибо)

Oleh
16.06.2018
14:42:48
Но если я использую в игре

Oleh
16.06.2018
14:43:23
Структуру которая только там используется, то не очень вижу смысл ее дробить

Slava
16.06.2018
14:45:36
Структура - это имплементация уже

V
16.06.2018
15:25:12
Один интерфейс - один метод... сразу на ум приходит file из http.

Kaspar
16.06.2018
15:26:15
Ридер же

Alexander
16.06.2018
17:28:04
На счет интерфейсов, вот по этому шаблону вот такой результат
https://play.golang.org/p/9POLvsjDF6
BenchmarkDirect-8 2000000000 1.75 ns/op
BenchmarkInterface-8 500000000 3.85 ns/op
BenchmarkInterfaceUnknown-8 100000000 19.8 ns/op
тут прост выше задавал вопрос на тему быстртдействия

Google

Alexander
16.06.2018
17:52:06
Ребят, написал админу, но вдруг он просто бот, а не человечек
Нашел такое сообщение t.me/gogolang/89318

Admin
ERROR: S client not available

Alexander
16.06.2018
17:52:21
Вообще я больше по php, но последние полгода активно изучаю/пишу на Go
можно ли получить пример тестового задания? чтобы хоть понимать что на рынке от гошников требуется?
> Вообще я больше по php
мне теперь в этом чате никогда не будут отвечать?


Kirill
16.06.2018
18:40:30
Народ, у меня объявление:
Каждый месяц я буду разыгрывать по от $50 до $100 за:
- самую популярную статью об https://github.com/gramework/gramework на таких платформах, как medium, habr.com, digitalocean (если вы хотите опубликовать статью на другой платформе вам нужно написать мне, чтобы я сначала проверил, можно ли автоматически проверить всё нужное для нахождения самой популярной статьи). Автор самой популярной статьи месяца получит деньги. ВНИМАНИЕ: статьи, которые просто копируют примеры из ридми проекта и не дают новых знаний о gramework читателям, не участвуют в акции.
- самого активного контрибьютора. Я добавлю специальные баллы в названия тикетов и контрибьютор, собравший наибольшее количество баллов (при этом не меньше 4), получит деньги. Вы можете создавать новые тикеты с вашими пожеланиями, я буду ставить баллы на них. Я сам не участвую в этом рейтинге и не считаю свои же баллы.


Slava
16.06.2018
18:40:46
Ровно то же, что и от других программистов требуется

Kirill
16.06.2018
18:41:37
Go, конечно)
но могут появиться таски и для js-еров

Alexander
16.06.2018
18:41:48
лул. английский или русский

Artem
16.06.2018
18:41:54
))))

Kirill
16.06.2018
18:42:08

Michael
16.06.2018
18:42:14
моя твоя шнелле арбайтен

Hokusai
16.06.2018
18:43:35
Прикольно

Kirill
16.06.2018
18:43:50
в первую очередь английский или русский, а дальше хоть какие - немецкий, итальянский, украинский, белорусский - какой хочешь, мне по барабану, пока эта статья полезна, интересна и помогает продвинуть grame в массы)
за обсуждением тем, предложением фич и так далее - можно писать мне в личку, если хочется предварительно собрать у меня фидбэк :)
ну а со ссылками на участвующие статьи - нужно писать в одноименный чат в телеге с хештегом #article, чтобы я не потерял :)

Ivan
16.06.2018
18:46:59
@kirilldanshin а миддлварями норм расширяется? Глянул - cors уже имеется, но у меня их 13)

Kirill
16.06.2018
18:47:02
а самый мощный и стабильный контрибютор за следующие несколько месяцев (не считая меня) получит от меня приглашение в команду грэймворка :)

Google

Ivan
16.06.2018
18:49:35

Kirill
16.06.2018
18:50:05

Ivan
16.06.2018
18:52:18

Kirill
16.06.2018
18:55:17

Никита
16.06.2018
18:55:29
Не сочтите за грубость, но почему так мало звезд, если продукт хороший?

Ivan
16.06.2018
18:56:06

jack
16.06.2018
18:56:27
тема сменилась? что за флуд

Никита
16.06.2018
18:56:30
Ну как минимум год

Kirill
16.06.2018
18:56:48

Никита
16.06.2018
18:57:03
Та ну, нельзя так
marketing first :)