Pull to refresh
0
Каукин Игорь @Zanak

Backend и все что с ним связано. Немного — фронт.

Send message

А чего наши ни кого из суперзвезд не позвали?
По поводу звездности, кто знал Хабиба до его поединка с Макгрегором, кроме тех, кто регулярно смотрел бои UFC? Все помнят победителей.
Гимнастика, плавание, атлетика, бокс, любой спорт возьми, везде тяжелый труд, а получают одни футболисты. Ладно бы за результат. Обидно, и за спортсменов, и за страну.

Сразу оговорюсь, я не очень глубоко знаю раст, я его только изучаю. Зато я прилично знаю python, go и js. Поэтому заранее прошу прощения, если с точки зрения раст разработки сморожу глупость.


Писать асинхронный код зачастую сложнее, чем просто использовать потоки.

В чем же? Помечай асинхронные функции и не забывай сообщить "я помню что этот результат нужно подождать" при их вызове. По крайней мере в js и python как — то так. Единственно, я не увидел нигде упоминания о промисах, они уже существуют, или вы о них забыли?
Почему вы противопоставляете асинхронность и параллельность? Это 2 стороны одной медали, кмк. Что выбрать диктует задача, которую вы решаете, но ни как не инструмент. Например, для расчетных задач, где нет большой работы с файлами или сетью и зависимостей между ними потоки могут стать более предпочтительным выбором. Для сервиса — да, асинхронность работает лучше, потому что сеть отвечает не мгновенно, да и человек на том конце соединения может "задуматься". В таком случае имеет смысл отложить задачку и переключиться на что — то еще, пока не придет время вернуться к этой.


Например, приостановку или отмену операции на лету будет сложно реализовать

Стоит ли задумываться о реализации отдельных операций, или все таки рассмотреть механизм коммуникации с сопрограммами, через который и сообщать им о необходимости уснуть или быстро завершиться, подставляя на такие сообщения обработчики по умолчанию, если разработчик их не перекрыл своими?


Изменение #1

Даешь горутины почти в чистом виде? Только в go сопрограмма открывает управляющий канал и ловит команду на завершение от запустившей ее стороны. Произошла ошибка или пришла команда завершиться — аккуратно прибираемся и выходим из сопрограммы.


Явные и неявные вызовы .await

Питонский дзен учит: явное лучше неявного. Следствием этого может оказаться пожелание "не убирать .await".


Изменение #3: Отказываемся от Arc и используем scoped tasks

Здесь уже стоит посмотреть в сторону языка ada. Там, как я вас понял, присутствует что — то похожее. Вдруг окажется интересным, изучить опыт предшественников.

Ну повезло вам, оказалось, что вы не без способностей в этой области. Чего сразу громогласно заявлять об этом. Не вы первый, не вы последний.
В моей карьере был период, когда я несколько лет занимался преподаванием в университете. Количество примеров, когда люди впервые встречались с этим видом деятельности было предостаточно. Как возможно любого человека научить рисовать или играть на музыкальных инструментах, так любого человека можно научить писать программы. Только базовые навыки не делают такого человека профи. Способности нужны и здесь. Ну и практика конечно, много и разной.
Впрочем, мой скепсис не отменяет моих пожеланий успехов в профессии. Она трудная, но интересная.
Я смотрю на этот вопрос с другой стороны:
— вирус существует, люди болеют, некоторые даже умирают. к сожалению, на примере своих друзей и родственников довелось убедится.
— прежнего опыта встреч с этой заразой, у человечества, или нет, или недостаточно. иначе не было бы всех этих глобальных проблем. да, кто — то на этой истории наживается, но это не связано с целенаправленным распространением этой заразы и усложнением проблем с нею связанных. просто человек сумел использовать ситуацию к собственной выгоде.
— знание о предыстории появления вируса и поступков людей, которых обвиняют в участии или даже организации этой истории ни как не приближают меня к главному — ответу на вопрос: КАК МНЕ ИЗБЕЖАТЬ БОЛЕЗНИ, ну или, хотя бы, ослабить ее последствия.
— единственно, кто реально может мне дать шанс не получить инфекцию и осложнения после нее — это профессионалы, биологи и медики. на их опыт и знания надеюсь и этим людям доверяю. больше просто некому.
— со своей стороны делаю все возможное, чтобы не заболеть: защищаю органы дыхания, соблюдаю меры личной гигиены, держу дистанцию, привился при первой возможности.
— чтобы окончательно закрыть вопрос с ограничениями, надо, чтобы таких как я было большинство. собственно, поэтому сижу и строчу этот опус, вместо того, чтобы просто пойти спать.

Читал, хотя, пока не попробовал так:


v = 0

def inner(t):
    global v
    v += t

def fish():
    try:
        return inner(1)
    finally:
        return inner(2)

fish()
print(v)

как оказалось, не понял о чем речь. Да, согласен, полезное наблюдение: функции с побочными эффектами стоит вызывать отдельной строкой, хотя бы для напоминания/указания, что она обязательно отработает.

Специально потратил 2 минуты на проверку в консоли:


igor@home:~$ cat ./test.py 
def fish():
    try:
        return 1
    finally:
        return 2

print(fish())
igor@home:~$ python3 ./test.py 
2
igor@home:~$ 

и где тут единичка в выводе?

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


If the try statement reaches a break, continue or return statement, the finally clause will execute just prior to the break, continue or return statement’s execution.

If a finally clause includes a return statement, the returned value will be the one from the finally clause’s return statement, not the value from the try clause’s return statement.

До return из try блока выполнится finaly, а раз там стоит свой return, то только он и выполнится.

Цель любого бизнеса — это получение прибыли. Если предприниматель ставит какие — то другие цели — то это что угодно, только не бизнес.
Когда говорят о социальной ответственности, или социальной ориентированности бизнеса, как мне кажется, имеют ввиду поделиться, деньгами, ресурсами, или взять на себя какую — то роль, которая не принесет прибыли, или прибыль будет минимальна.
Меценатство и благотворительность в России, особенно в царской, вполне себе существовали. Только исходили они от состоятельных граждан, как осознанное желание творить добро и пускать часть своих доходов на благо общества.
Попытка "нагрузить" бизнес несвойственными ему социальными функциями приведет только к желанию перестать им, предпринимательством, заниматься, либо всячески уклоняться и саботировать дополнительные обязательства.
Все что бизнес точно обязан делать — это платить налоги в полном объеме и соблюдать законы. Все остальное — исключительно по велению его предпринимательской души.

Пусть сидит ровно и не ерзает ваш мальчик. Все это обычная игра на нервах.
Все, что он, чисто на вскидку, мог нарушить — это:
— имущественное право, если утянул хоть один непубличный модуль из репо бывшего работодателя,
— авторское право, если утянул модуль из открытого репо компании и не указал это, или нарушил лицензию, по которой этот модуль был доступен,
— использовал технологии в своем проекте, на которые компания имеет патент и к которым он получил доступ будучи сотрудником,
— создал сайт, аналогичный по функционалу и внешнему виду, имеющий схожие элементы интерфейса и расположенные в аналогичном порядке.
Если ни чего из этого нет, и проект целиком и полностью авторский, то смело можно ждать предъявления иска, и с юристом, шаг за шагом, отбивать все наезды. Во всех известных мне странах издержки по иску несет проигравшая сторона. И получение компанией финансирования здесь мало что решает, потому как инвесторы дают деньги на развитие и получение прибыли, но ни как на судебные дрязги.
Мы не в суде, а я не адвокат и тем более не прокурор. С точки зрения здравого смысла, если компания сочтет возможным обратиться в суд, это будет означать, что необходимые основания, и доказательства в том числе, у нее есть.
Если поискать на гитхабе, то, как минимум с первой попытки, не находятся исходники, позволяющие составить впечатления о технологиях, которыми пользуется Replit, а значит надо смотреть, что именно было открыто, и на каких условиях. Маловероятно, что это все исходники сервиса, а значит версия о плагиате все еще актуальна.
С чего бы судье быть на стороне парня, если вы не собираетесь обвинить его, судью, в предвзятости? Во всех странах судьи — это достаточно состоятельные люди, и если уж говорить о предпочтениях, то компания, существовавшая до того как парень взялся за свой проект, должна вызывать у судьи больше доверия, чем пацан, непонятно откуда взявшийся и какие цели преследующий.
Я еще раз озвучу свою мысль: если парень не сможет предъявить проект, хотя бы, написанный на языке отличном от используемого в компании, ему будет сложно отстоять права на свой проект. Никто не поверит, что он его не списал.
Многое зависит от стека, который используется в Replit и проекте парня.
Если использованные инструменты окажутся одинаковыми, то что мы имеем:
— до прихода в проект парень ни чем подобным не занимался, как я понимаю
— парень какое — то время проработал на проекте, судя по всему успешно
— парень ушел из проекта, и крайне быстро, вроде звучало, что за день, запускает нечто подобное.
Какой вывод должен сделать судья, который будет рассматривать это дело? Правильно, парню нужно будет очень постараться, чтобы доказать, что он ни чего после ухода не прихватил с собой.

Истцы упустили одну вещь, и если их претензии именно так и звучат, то им откажут: РКН ограничивает не истцов, которые действительно ни чего противозаконного не совершали, а социальную сеть, которая игнорирует требования российского законодательства и не блокирует, с территории страны, доступ к противоправному контенту.
Как мне кажется, куда больше шансов переубедить судью и добиться требуемого решения, если упирать на то, что снижение скорости доступа не блокирует контент как таковой, а в законе нет понятия частичного исполнения его требований. Если контент противоправный — доступ к нему должен быть ограничен, и точка. А раз введенные ограничения не ведут к исполнению требований законодательства — то их применение не обоснованно, и они должны быть отменены.
Я не юрист, поэтому прошу относится ко всему выше сказанному как к идее, или частному мнению, а не конкретной рекомендации.

Совсем нет. Частные заказчики позволяют существовать программистам не только в рамках больших корпораций.
На эстраде проблема не в том, что Оля Бузова поет плохие песни, проблема в том, что через 20 лет они станут классикой. В программировании та же история, выживают простейшие.

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

Проблему с нежеланием читать спецификации можно решить кардинально: не писать программу.
Пользу от программы вижу только в одном: в качестве быстрого справочника, когда с темой знаком, но всех деталей в памяти может и не всплыть.

Три закона робототехники содержат ошибку. Сами фантасты на нее и указали: люди слишком часто причиняют вред себе, и себе подобным, что их воля может быть ограничена, или вовсе не браться в расчет.
Куда больший интерес должен представлять вопрос: судьба аппарата после выполнения миссии, особенно, если ресурса батареи не хватает для возвращения? Будет ли он искать безопасное место для самоликвидации, или на территории противника все враги, чего добру пропадать?

Стоит заметить, что у них есть целый ContentID и специальный сервис для правообладателей, чтобы они могли убирать скопирасченный контент.

Вы не о том, речь про противоправный, по мнению РКН, контент: порно, наркотики, суицид и т.д. Нарушение авторского права тоже является противоправным, но об этом, в первую очередь, голова должна болеть у правообладателей, потом у РКН.

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Fullstack Developer
Middle
From 120,000 ₽
Python
PHP
PostgreSQL
MySQL
Golang
Git
Docker
Nginx
Linux
Perl