Задать вопрос
  • Клиент подаёт в Арбитраж Upwork, с меня вывернут 291$?

    @li_klatsun Автор вопроса
    Всем спасибо за поддержку) Вопрос почти решился. Клиент действительно блефовал. И когда UpWork расписал сроки, предупреждение о заморозке счета, в случае если одна из сторон оплатит, а вторая нет. И т.д.
    В общем, перечислили все прелести и сказали еще раз размер платежа (видимо она в прошлый раз плохо прочитала, может думала что с меня 291? аххаах).
    Написала что в таком случае готова на этом этапе оплатить работу и завершить дискуссию.
    Ответ написан
    Комментировать
  • Какую книгу посоветуете для поднятия базового уровня знаний о программировании в целом?

    zualex
    @zualex
    Senior Software Engineer
    Вот для начала, выбирай что понравится:
    • Программист-прагматик. Путь от подмастерья к мастеру (Эндрю Хант, Дэвид Томас)
    • Джоэл о программировании
    • Джоэл. И снова о программировании
    • Идеальный программист. Как стать профессионалом разработки ПО (Роберт К. Мартин)


    Если понравится, то вот чуть сложнее чтиво:
    • Совершенный код (Стив Макконнелл)
    • Рефакторинг(М. Фаулер)
    • Чистый код создание, анализ и рефакторинг (Роберт К. Мартин)


    Если еще нужно, что то зубодробительное, то вот:
    • Структура и интерпретация компьютерных программ (Харольд Абельсон, Джеральд Джей Сассман)


    А так рекомендую еще читать, что то около программирования:
    • Мифический человеко-месяц, или Как создаются программные системы (Хилл Чапел, Фредерик Брукс)
    • Цель. Процесс непрерывного совершенствования (Элия М. Гольдратт, Джеф Кокс)
    • Человеческий фактор. Успешные проекты и команды (Том ДеМарко, Тимоти Листер)
    Ответ написан
    Комментировать
  • Как быстро разобраться в чужом проекте?

    @pavelsha
    Эти две недели "Живите вместе" с прежним разрабом.

    1) Пусть расскажет архитектуру, надет все обрывки по постановке ТЗ и выполнению, детально их покажет и отсортирует.

    2) Пройдите с ним по типовым кейсам поддержки / доработки. На второй неделе садитесь сами выполнять все заявки по системе, которые приходят на разраба (он чтобы был рядом как тьютор)

    3) Фиксируй для себя сразу, что было не понятно. И спрашивай

    4) Попробуй договориться (в идеале через руководство) или лично со старым разрабом, что можете обращаться к нему эпизодически за советом ближайшие несколько месяцев.

    5) Пусть старожил расскажет бытовые / политические / экономические особенности этого работодателя.
    У тебя идет испытательный срок? Прекрасно! В случае Пушного зверька на горизонте имеешь право уйти одним днем.

    6) Если время позволяет и ресурс есть, то пусть аналитики или этот разраб (если он Алл-инклюзив) садаться и ночами пишут доки по системе. Со стороны работодателя будет корректно предложить за это премию / бонус / договор ГПХ после увольнения разраба.
    Ответ написан
    Комментировать
  • Как быстро разобраться в чужом проекте?

    Zoominger
    @Zoominger
    System Integrator
    Обратиться к программисту с просьбой всё рассказать.
    Две недели - вполне достаточно для проекта средненького пошиба.

    Ну или бежать, пушо вот это:
    Доков особо нет.

    Вместо тысячи слов говорит об уровне конторы и постановке работы отдела разработки.
    Ответ написан
    4 комментария
  • В 40 лет планирую поменять сферу деятельности с 1С на Android? Сколько на старте смогу зарабатывать?

    @romicohen
    Системный Архитектор
    Хорошая тема, ибо я тоже начинал в 1С в начале 00-х, а теперь вот web-dev Laravel/Vue :)

    Камрад, с которым я работал в этом же 1С - совсем недавно переучился на Java и тоже успешно работает где-то там в своих москвах ))

    Так что прецеденты - есть, как минимум.

    Другое дело - потери в деньгах будут неизбежно. К тому же, 1С - хорошая хлебная платформа, она всегда востребована и оплачиваема - всем нужен 1С-разработчик :)

    Может вам стоит поначалу завести Pet-Project в нерабочее время и развить его, чтобы было хотя бы понимание во что вы влезаете?

    И да, не советую распыляться по технологиям. Сначала андроид, потом айос... Если ваша цель Айос и переезд в Калифорнию )))) так и начните прямо с Айос и Флаттера, собирать проекты под Айос можно и в Виртуалбоксе вроде бы, или на облачном сервере. Не надо тратить ресурсы на то, чем не собираетесь заниматься в дальнейшем.

    Вижу так.
    Ответ написан
    Комментировать
  • В 40 лет планирую поменять сферу деятельности с 1С на Android? Сколько на старте смогу зарабатывать?

    @AndromedaStar
    .Net - monkey
    У вас прекрасный возраст, сейчас на это уже не смотрят. Причём ещё есть отличный опыт в финансовой сфере скорее всего, опыт коллективной разработки. Это как раз вас и отличает от зелёного джуна.
    Но. В нашу команду мы очень стараемся не брать женатых или замужем людей. Нам все равно на пол, возраст, национальность, как и всем адекватным людям. Но, к сожалению, семья отнимает слишком много сил и энергии, это считай вторая, ещё более ответственная работа. И в режиме сверхинтенсивной разработки, как в стартапе, разница между человеком без семьи и с семьёй видна сразу. Ну вот раньше в офисе сразу было видно, что у человека голова часто занята не тем, а это сказывается на перфомансе. Плюс вам будет сложнее уделить все выходные учёбе. Ну все мы люди, все понимаем.
    То есть подводя итог, недостаток времени и сил из-за семьи может очень сильно помешать. Вот если конечно попасть в какой-то полусонный финансовый энтерпрайз, там может и по другому. Так что я бы на это на вашем месте ориентировался.
    Ответ написан
    23 комментария
  • Книги по C# с паттернами и примерами архитектуры?

    @WinnerIT
    Программист и фотограф-любитель
    Если нужна доходчивая книга по паттернам:
    Клик. Это не на C#, но на простом языке объеясняет паттерны.

    В целом могу посеватовать страницу Сергея Теплякова. Тут указаны книги по С# для любого уровня. У него также вышла своя книга по паттернам:
    Книга тут
    Ответ написан
    Комментировать
  • Как понять микросервисы?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Микросервисы пишут не для того, чтобы просто переделать API.

    Основной смысл микросервисов - выделить из вашего продукта компоненты, на которые идет большая нагрузка с тем, чтобы эти компоненты можно было легко горизонтально масштабировать.

    А уже исходя из этой точки зрения:

    1. Если у каждого сервиса есть свой api, зачем API Gateway (точка входа), можно же на nginx сделать обращение по location на нужный api?

    А если нужно много экземпляров, будете одним nginx-ом раскидывать по 10 локейшенам? Микросервисы в современном мире предполагается запускать в докере на собственном легковесном веб-сервере (типа Jetty), поднимать нужное количество экземпляров и балансировать чем-нибудь на входе, но не по локейшенам.

    2. Стоит ли использовать RabbitMQ для общения между сервисами? Правильно ли понимаю, что точка входа на ноде, посылает запрос в раббит и ждет от него же ответ и отдает клиенту?

    РаббитMQ или kafka позволяют множеству экземпляров вашего сервиса обрабатывать сообщения, с гарантией того, что из очереди ничего не пропадет, и если какой-то экземпляр сдохнет, то этот запрос обработает другой экземпляр. Именно ждать ответ наверное не самое правильное, но это можно смотреть как вам удобнее - периодически опрашивать очередь, или настроить чтобы message service сам пушил по событию.

    3. Например делаем микросервис по авторизации пользователя и регистрации. У него должна быть своя база данных? Как например в админке обращаться к пользователям, чтобы их добавить или заблокировать, я должен запрашивать пользователей с микросервиса? Получается микросервис отвечающий за пользователей CRUD + Регистрация, авторизация, сброс пароля?

    Это как вы хотите. Если у вас очень много пользователей и авторизация тормозит, но можно сделать микросервис с авторизацией, сделать кластер базы данных с репликацией. Дальше можете балансировать пользователей и там уже решать как их раскидывать. Или база мощная и все экземпляры могут работать с кластером. Или делите базу на части, и раскидываете пользователей по алфавиту (база юзеров от A* до H*, база юзеров от I* до M*, по региону или как вам нравится).

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

    Второй немаловажный плюс микросервисов - работать над небольшим микросервисом проще, чем над крупным монолитом. Упрощается его поддержка рефакторинг. То есть в конечном счете упрощается требования к квалификации программиста. Но усложняется общая архитектура проекта, то есть на сеньоров/техлидов нагрузка возрастает.
    Ответ написан
    Комментировать
  • Какие задачи по паттернам проектирования на C# вы можете посоветовать?

    У контура есть не самый новый, но достаточно объёмный курс по паттернам на практике:
    https://ulearn.me/Course/CS2/Vvedenie_7df81bac-f52...
    Ответ написан
    Комментировать
  • Возможно ли стать middle/senior без работы?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Так же, как стать чемпионом бокса, ни разу не выйдя на ринг.
    Ответ написан
    Комментировать
  • Возможно ли стать middle/senior без работы?

    @mlyamasov
    Конечно. По знакомству, дети чиновников...
    Раньше детей дворян записывали в армию сразу после рождения и служить они начинали в чине офицера: www.bolshoyvopros.ru/questions/986951-zachem-dvorj...
    А если серьезно, то наличие знаний и проектов не стыкуется с отсутствием опыта.
    Ответ написан
    Комментировать
  • Возможно ли устроиться джуном на удаленку за рубеж?

    @mkone112
    Начинающий питонист.
    Делай аллергопробы и коли вакцину без компонентов на которые аллергия, и под присмотром врача сразу в больнице. Проблема высосана из пальца.
    Ответ написан
    6 комментариев
  • Как разобраться в ASP.NET MVC относительно быстро?

    sarapinit
    @sarapinit Куратор тега C#
    Точу водой камень
    Может какие-то конкретные книги можете посоветовать?

    Советую вот эту https://www.ozon.ru/product/asp-net-core-3-s-prime...
    или более раннюю версию от этого автора.

    Сам начинал учиться по такой книжке, только тогда еще был asp.net mvc4

    Также рекомендую официальную доку https://docs.microsoft.com/ru-ru/aspnet/core/?view...
    Она сделана достаточно хорошо, а в некоторых местах очень хорошо.

    И если не хватает, то https://metanit.com/sharp/aspnet5/
    Ответ написан
    Комментировать
  • Что такое болтливые сервисы?

    TheSnegok
    @TheSnegok
    В концепции протоколов TCP главное значение придавалось стабильности, скорость играла второстепенную роль. TCP отправляет небольшой объем данных и ожидает подтверждение о прибытии пакета, прежде чем отправить следующие. Именно таким образом TCP убеждается в доставке пакетов, поэтому его называют «болтливым» протоколом (от англ. chatty protocol). Из-за «болтливости» и неизбежной задержки загрузка по глобальной сети длится существенно дольше, чем по локальной. Так, передача через глобальную сеть вложенного в электронное письмо файла PowerPoint размером 3 Мбайта может занять 20 мин, в то время как по локальной сети — лишь пару секунд.
    Прикладные протоколы на основе TCP подвержены той же проблеме и часто отличаются еще большей задержкой. Однако каждый пользовательский протокол работает по-разному, поэтому и «болтливость» проявляется у каждого в разной степени.
    Ответ написан
    Комментировать
  • Правильно ли под каждый микросервис запускать сервер базы данных?

    past
    @past
    Системный администратор
    Как уже написали, база это отдельный сервис. Если нужна база, пишется сервис для общения с ней и остальные сервисы общаются через него.
    Ответ написан
    Комментировать
  • Чем отличается разработка ASP.NET MVC от ASP.NET API?

    saDam
    @saDam
    Microservices, .NET Core, EF Core, SQL, RabbitMQ,
    В первую очередь нужно посмотреть наследование, как они работают:
    Если вы обратите внимание то webapi и asp.mvc(далее просто mvc) контроллеры наследуются от разных классов Http.ApiController и Mvc.Controller.
    Нужно понимать что webapi предназначен для реализации REST сервисов с охватом всех видов http запросов(GET, PUT, POST, DELETE итп) и ответом на запросы к webapi вы получаете json с явным указанием статуса ответа.

    В MVC можно реализовать то же самое что и в webapi, НО! лично я считаю, что эти вещи нужно четко различать, так как в случаи с MVC, вы должны понимать, что результатом запроса в большинстве случаев является сгенерированная вьюшка, то есть результат http запроса в большенстве случаев это html или что-то похожее. Да в mvc тоже может возвращаться структурированный json(например если вы делаете таблицу с пагинацией или с динамической подгрузкой данных, в таком случаи у вас метод Index возвращает вью на которой вы пишете ajax запросы к методу GetPageForTable этого же контроллера, но тут тоже есть вариация, вы в методе GetPageForTable вольны решать, отдавать только данные или уже сгенерированную вьюшку).

    Как итог: webapi - рест сервис со всеми типами http запросов, в котором ответ(по умолчанию) приходит в структурированном json и с явным статусом состояния(200, 404 итп...) . Хорошо подходит для проектов где клиентом может быть не только веб, но и допустим мобильное приложение или еще что-то.
    MVC - работает примерно как webapi но результатом может являться сгеренированная html разметка. В таком случаи уже поддержка многих платформ с клиентской части невозможно, представьте, что делать мобильному приложению с html разметкой...
    Ответ написан
    Комментировать
  • Что такое pseudo-tty?

    icCE
    @icCE
    youtube.com/channel/UC66N_jRyZiotlmV95QPBZfA
    pseudo-tty - Устройство которое имеет функции физического терминала, фактически не будучи им. Например Xterm. Более детально manpage pty.

    Параметр -T определяет поведение при подключении. Если вы запустите ssh с этим параметром, то вы отключите поведение pseudo-terminal. Те вы будите работать, как бы в прямом доступе. Без командного интерпретатора (bash,zsh). Из-за этого не будет работать некоторые команды и скрипты. Например sudo (no tty present and no askpass program specified)

    Да попробуйте такую команду для большего понимания

    ssh -t server.com screen -dr pts-2

    где screen это программа.
    Ответ написан
    Комментировать
  • Что я делаю не так?

    MinTnt
    @MinTnt
    Просто в данном запросе "https://bablobit.ru/index.php?login/login" присутствует redirect. А как мы знаем, когда в пост запросе присуствует redirect, он будет возращать html.
    with open('1.html', 'w', encoding='utf-8') as f:
        f.write(r.text)

    Т.е. предпологаю что у тебя здесь вывелось html с окном для входа.

    Для того чтоб прочитать redirect, считываем r.history. А так как обычно на подобных форумах переадресация лишь одна, то можем считываем лишь первый, а так же можно вывести headers. Обычно на подобных, но чуть усложнённых версиях, как раз в headers генерируется session , который по дефолту обычно существует 30 дней. Благодаря этому session token потом при помощи get запросов, можем получать xftoken - который обычно по дефолту существует ~12 часов, или чуть больше.

    Так что для обработки пост запроса, можем использовать такой вот вид. Как раз таки в headers попадаются или токен сессии, или статус входа, не помню точно, относительно давно это было.
    print(r.history[0].headers, r.history[0].text)


    Update: Вот к примеру, в случае успешной авторизации, у r.status_code - будет равно 303. А в r.history[0].headers выведет что-то по типу
    Set-Cookie: xf_user=85376%2CH4tard146PUjjcLAYflx8-eovp8AmraDqd0lkf-A; expires=Thu, 28-Apr-2022 08:01:40 GMT; Max-Age=31536000; path=/; secure; HttpOnly
    Set-Cookie: xf_session=73Ox5QmBBLZEpYBL940YTm_iMX7u2ufR; path=/; secure; HttpOnly

    Эти set-cookie, берём, и добавляем к изначальным headers--> cookie. И вуаля.
    Ответ написан
    5 комментариев
  • Какая подробная план-стратегия обучения программированию на Python?

    SilenceOfWinter
    @SilenceOfWinter
    та еще зажигалка...
    Да вроде все очевидно: прочесть популярный учебник для чайников (можно определить например по числу отзывов) -> попрактиковаться -> изучить смежные темы (html\xml\json, СУБД) -> попрактиковаться -> прочитать продвинутый учебник\официальный мануал -> попрактиковаться -> изучить смежные темы (шаблоны проектирования, тестирование, кеширование) -> попрактиковаться -> освоить популярный фреймворк на данном языке -> попрактиковаться
    Ответ написан
    Комментировать