Pull to refresh
11
0
Стас Тельнов @Stas_Telnov

User

Send message
Мы как то использовали локальный сервер, у нас была читалка, которая показывала html, загружаемый с сервака и хранящийся локально, не помню уже почему именно сервер локальный пришлось поднимать, но ресурсы телефона он жрал тогда очень хорошо. И это было давно, году в 2012-2013. Причём вроде как тот же GCDWebServer был, но эт не точно. Вообще жаль что приходится такие костыли использовать. Всё таки не должны аппы локалхост у себя в песочнице поднимать.

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

ИМХО, для этого я бы не стал, даже для dev сборок тащить либу. Проще у себя на маке локалхост развернуть (MAMP какой-нибудь или что-то в этом роде) сделать на нём заглушки и обращаться к ним. А потом когда бек появится, просто поменять url на бекендовский.
Тоже хорошой подход. Осталось заставить бекенд разработчиков поддерживать единообразие. К сожалению, в моей работе вполне возможны варианты, когда формат ответа меняется, выкатывается на бой, а мобильных разработчиков предупредить забыли.
+ бывают разные типы ошибок.
Поэтому я предпочитаю, что если успех — то это success блок, и отрабатывается по одному алгоритму.
А если ошибка — то в отдельном месте определяем что за ошибка (от сервера пришла, сетевая ошибка, сервак лёг) и обрабатываю это отдельно.
Мне кажется что чёткое разделение — вот здесь точно нет ошибки,
а здесь точно ошибка — более гибкое и меньше всяких условий получается.
Но это моё ИМХО, основанное именно на моём опыте.
Да, тело парсится всегда. Если не найдено ничего в теле — то показывается «неизвестная ошибка». А так — всегда в теле должно быть что-то
Да, всегда одинаковая. Если нет тела, то показываем «универсальную» ошибку.
Я больше придерживаюсь принципа — если всё ОК — то код 200.
Во всех остальных случаях — любой не 2хх код и текст ошибки в теле.
А 401 и прочее — это для обработки «особых» случаев и особых ошибок.
Ну можно упороться и в тело помимо ошибки определить ещё какой-то протокол, по которому определять действия. Но это уже изврат я считаю.
Я так не загоняюсь. Нет соли в магазине — значит например 400/404/любой другой с сообщением (полем error).
404 битый url — просто мы не получим сообщение от json в body от сервера и выводим ошибку вида «что-то пошло не так, попробуйте позже или сообщить нам о проблеме»
Согласен. Совсем упарываться не надо, и описанное в статье неплохо в теории и в идеале, но всегда «реальность вводит коррективы».
Собственно я такой блок ответов и использую.
200 — ок
401/403 — проблема авторизации (+ error поле)
400/500 — просто ошибка, что-то пошло не так (+ error поле)
Согласен с автором статьи.
Если бы вы писали, например, мобильные приложения на типизированных языках, то не были бы столь категоричны. Я в своих сервисах тоже везде отвечаю 200 со стандартным телом, где есть поле isSuccess, есть код и есть описание ошибки, в случае ее наличия.

Пишу на swift, до этого на obj-c писал. И нет, коды ошибок http крайне важный и помогают на этапе до парсинга определить что произошла ошибка. И я всегда настаиваю при работе с бекенд-коллегами чтобы ошибки отдавались с соответствующим http кодом.
Например что-то произошло с авторизацией. Слетела она по какой-то причине. Можем послать 401 код, в любом запросе, и это будет означать что авторизация не прошла — надо локально почистить данные и выполнить специфичные для этой ошибки действия (например попросить авторизоваться).
А когда всё приходит со статусом 200 — то нужно каждый раз разбираться и парсить — ошибка тут пришла (и какая — надо просто показать сообщение или нужны действия) или объект.

P.S. вообще, то что описано очень похоже на то, как реализован REST модуль в Yii2. Одна из самых удобных, на мой взгляд, реализаций, REST, с которыми мне приходилось работать.
Я использую всегда (ну кроме отдельных случаев):
@IBOutlet private var someLabel: UILabel?

с тех пор, как начал писать на свифте.
Про weak уже сказали выше — он не нужен.
Но почему так много людей делают аутлеты не опшионалами?
Ведь в теории, при передаче в контроллер какого-то параметра (из segue например и особенно когда они не приватны) аутлеты могут быть ещё не привязаны и не доступны?
Что это? Авось и так прокатит?
Ребят, у вас какой-то глюк с формой оставления отзыва.
Вчера коллега хотел оставить отзыв о нашем городе. Но не смог — форма отправки у него не работала. Выделить все и сохранить данные нельзя, только по каждому полю кликать и сохранять куда-то. В результате отзыв он не оставил (писалось с osx, chrome). Вечером я так же пытался оставить отзыв — точно так же форма не отправлялась (win 8, firefox). Я не поленился и скопипастил все что писал в блокнот, открыл форму ещё раз, вставил — и о чудо, форма отправилась, отзыв появился. Возможно от времени заполнения и ожидания зависит. Изначально я форму около получаса заполнял (ну пока чаю попил, пока подумал что писать, пока глазами на счет опечаток пробежался).
Я об этом писал вам в техподдержку, и похоже даже несколько раз отправил (извините, но у вас там никакого сообщения об отправлено/ошибка нет, и потому кликал кнопку сначала так, а потом с просмотром отправляется ли что-то в firebug).

Лайки/дислайки, комменты и редактирование отзыва, я считаю must have, я, к примеру, пару опечаток так и не заметил вчера.

А так, идея весьма, особенно сейчас, когда высока вероятность потерять работу, а искать новую возможно придется с перемещение пятой точки в другую локацию.
А в чем с такими проблема, просто интересно? Я конечно не спец по знакомствам в инете, но по моему как раз эта фраза — демонстрация современных взглядов девушки и не желания ее «вешаться на шею» (понятно что мне то не удобно будет и я все равно постараюсь настоять на том, что раз уж пригласил девушку в ресторан, то и кушать за мой счет).
Ну технология новая, не отработанная еще, да и телефоны для гиков (гиковская технология не очень удобная для обывателей). К тому времени как самсунг нарушит эппловский патент на технологию эти баги пофиксят.
Отличная кстати вещь. Почти все институтские годы с ним проходил. А потом у него деградировали окончательно и основная и резервная батареии и он просто лежит пылится в ящике стола.
Все говорят о будущем, о гибких дисплеях! Apple выпустили инновацию — почти гнущийся телефон, а тупые юзеры опять не довольны!
Это не баг, а фича!
Прочитал пост и решил оставить своё «очень важное» мнение.
По моему вы немного заигрались в гуру. Пожалуй, я бы в начале своей карьеры может пошёл бы к вам на стажировку, но точно бы не остался и вот почему:
1) Я программист, а не сисадмин. Мне все равно какая IDE, и пофигу если люди сидящие в одной комнате пишут на разных IDE. Просто кому-что удобнее. Я лично, к примеру, не могу терпеть Eclipse. Очень долго предпочитал Zend Studio (пока она не превратилась в тот же эклипс и не-еклипс версия была более-менее актуальна), потом перешел NetBeans. Иногда попытка писать php/js код на других платформах вызывает у меня чувство растерянности (не понимаю сразу, что значат иконки IDE, не могу найти некоторый функционал довольно долго, борюсь с настраиванием tab`уляции блоков и etc.)
2) Я не сис. админ, я программист, я не хочу ничего настраивать, я хочу просто писать код. И мне не важно, буду я делать это под Денвером или под Lamp или где-то ещё. Я хочу просто писать код. php.ini и другие настройки сервера зачастую можно эмулировать на локальном Денвер сервере под виндой. Я просто тащусь от написания кода. Я может и могу в случае необходимости что-то настроить, полазить в консоли, полчаса гуглить консольную команду и одну минуту делать. Но зачем? Я просто хочу писать код! Качественный, понятный. Но писать код, а не «настраивать среды»! Я хочу гуглить и изучать программирование, а не «настройку среды».
3) Я во время своего студенчества проходил реальную практику на гос.предприятии. Оно мне вправило мозги значительно. Там платили достаточно много для бедного студента, но не достаточно для профессионала ( но были другие плюшки как для «призывников», так и для ожидающих ребёнка девушек). И даже сейчас я бы предпочел получать практику там — пусть иногда немного устаревшую (но никто не запрещал изучать и применять новые подходы, изучать код «не разрешённых» библиотек и применять его фрагменты «по памяти» при написании приложений), устаревшие фреймворки и библиотеки (ПО для использования должно было быть «одобрено» — предприятие было «закрытое»), чем стажироваться в компании, где рассоро-верным считается один фреймворк, совмещение должности сис. админа и программиста (два в одном) и расстрел за шаг вправо и влево (возможно я не прав, но такое мнение у меня сложилось после прочтения вашего поста).
4) У вас. судя по всему, действительно можно многому научиться в разных смежных сферах. Это здорово. Но идут работать не за этим, а за тем что кушать хочется. Ну хоть доширак, но кушать. У вас стажировка не оплачиваемая совсем я так понял. Ну хоть 5к руб (хотя я на 2-м курсе вполне работал за 1к руб и был счастлив таким деньгам). Даже тем, кто готов терпеть и работать на будущее хочется кушать сейчас. Я в свое время делал свой диплом, взял на заказ еще 3 диплома за деньги работал на 1/4 ставки. Я не хочу повторять этот опыт, даже не смотря на тот факт, что закончилось все хорошо для меня и для всех моих работодателей. Я бы, возвратясь назад, предпочел бы получить меньше денег и опыта и рискнуть теперешними перспективами, з/п и свойствами (да, я действительно бы обменял часть своего текущего опыта, профессионализма и благосостояния на прошлые возможности беззаботного студенчества). А у вас стажировки исключительно за опыт, насколько я понял. Но кушать хочется всем, даже не очень способным и умственно отсталым, и не у всех есть родственники, способные накормить пока ты «получаешь чистый опыт». Хотите новых сотрудников-профессионалов? Берите тех же студентов на низкую зарплату, обючайте их так же, но с пересмотром з/п каждый полгода — тогда и не улетят.
5) Строго следование рассово-верным фреймворкам, рассово-верным средам, рассово-верным подходам и стилям — шаг вправо или влево ведёт к расстрелу. Может я не прав, но такое уж мнение у меня сложилось после вашего поста. А я вот интересуюсь не только веб-разработкой, но еще и мобильной разработкой (сейчас работаю ios-разработчиком). Но при этом не могу найти время на то, чтобы стать узким профи в одной из этих областей. У меня не хватает времени и сих, чтобы знать все фреймворки, особенности, Да, я не узкий профи. Но зато я единственный в текущей нашей ios-команде, кто может быстро (без часов гугления) разработать webview
компонент с пиемлемым уровнем качества на чистом JS или JS-фреймворке и совместить его с obj-c компонентами (у нас webview компоненты иногда бывают сложнее и объемнее ios-компонентов). При этом я уступаю и в профессионализме, и в знаниях, и в опыте чистым obj-c и js разработчикам (в том числе и уступаю по з/п).
6) Хотя я и считаю, что лучше быть чуть более низко-оплачиваемым разработчиком и имеющим опыт на нескольких ЯП, чем узким спецом в одном ЯП с риском вместе с этим ЯП утратить все свои навыки как внезапно не актуальные. В случае чего искать работу в нескольких смежных сферах легче, чем в одной единственной узкой сфере. У вас же — одна сфера, одна среда, много требований к подаванам и никакой отдачи для начинающих программистов. Ведь при ваших требованиях будет уходить у стажеров очень много времени на гуглёж админских способностей и навыков работы с конкретной средой/окружением без перспектив постребованности пласта навыков и опыта в других конторах и отличном окружении. Все-таки если у вас цель найти стажеров которые админы и немпого прогеры, то наверное вы делаете все правильно. А если прогеры, которые пишут качественый код но не хотят задумываться о среде и хотят просто качественно и достойно делать свою работу (писать код), и при этом посвящать свободное время именно улучшению навыков программирования, а не админства, то у вас, мне кажется, не совсем верный подход. От неверного похода и много пропавших без вести.

P.S. Таки да, у меня чутка бомбит от вашего поста. Ведь по сути, как я понял, вы даете практикантам реальные задачи, но при этом не оплачиваете их успешное исполнение, хоть ваша компания зарабатывает на результатах исполнения этих задач.
С эстетической точки зрения спорно. Ну да ладно, функцинал может и действительно удобный.
Но я прихожу на хабр читать статьи. Для меня хабр — не соц сеть, а информационный ресурс. И заем вот сужать мой монитор отступами слева и справа?
Раньше, когда мониторы были кинескомными и 14 дюймовыми — все пытались найти место на экране, максимально увеличить область с контентом. А сейчас все добавляют paddings и marrgins — чтобы люди с большими мониторами читали статьи, как будто на 14 мониторе.

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

Читаю и задаю себе вопросы. Поборю ли я свою лень? Поборю ли я страх перед переездом в новую страну, где никого не знаю и все говорят на чужом языке? Решусь ли я когда нибудь изменить это своё «нас и здесь пока не плохо кормят — для всего остального есть tor, vpn, i2p»? Когда уже я примусь за реализацию долгосрочного плана: «Лёрн чёртов инглишь энд гоу эвей!»?
В один конец — нет не хотел бы. А с возможностью возвращения — обязательно.
Эх, дожить бы до тех времён, когда выйдя в субботу утром, можно будет за час добраться до «космической маршрутке», слетать на свою марсианскую дачу, посмотреть на пейзажи, бахнуть рюмочку-другую чего-нибудь крепенького. Встретить на Марсе своего соседа по подъезду, поболтать. И в воскресенье вечером домой, захватив с собой в качестве сувенира камешек с поверхности Марса.
Вот это я понимаю. А отправиться на всю жизнь в безжизненную пустыню — нет, я не такой((
Понятно, значит привыкать к вашему сервису мне рано, надо будет искать бесплатные аналоги (1 url, 1 пользователь, анонимные пользовательские фидбеки).

Но у вас довольно удобный и красивый сервис! Надеюсь вы удачно поправите все шероховатости и нарастите функционал, удачи.
Отлично.
Кстати эту штуку вполне можно использовать на продакшене — например в виде функции «Сообщить об ошибке».
Было бы круто, если можно было еще возможность кастомизации кнопки фидБека, в том числе и принудительным указанием контрейна в котором она должна располагаться. Равно как и возможность локализации.
Но сервис у вас крутой!

А как и почем планируете монетизировать в будущем? Будет подписка или просто разграничения функционала на платную и бесплатную версии.
Ну а с чего тут быть оптимистом. Я сам держу небольшое кол-во биткойнов. Скорее как инвестор, на будущее. Но реальность пока такова, что восхищение биткойном проходит, и некоторые стараются его подвинуть. Конечно об уничтожении биткйона и других криптовалют говорить не приходится на мой взгляд, но существенно усложнить обычным гражданам взаимодействие с криптовалютами и сделать любые операции с ними полу-легальными — это вполне вероятно.
I want to belive. Хочу верить что этого не произойдет никогда, но такие попытки есть.
1
23 ...

Information

Rating
Does not participate
Location
Заречный (Пензенская обл.), Пензенская обл., Россия
Date of birth
Registered
Activity