Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 8999 сообщений
Cообщения с меткой

слезы - Самое интересное в блогах

Следующие 30  »
belsika50

О детских слезах

Среда, 21 Сентября 2016 г. 20:19 (ссылка)


 





Вы наблюдали, как ребенок плачет?

И что для вас слеза ребенка значит?

Бывает, что из глаз его слезинки

Закапают, как летние дождинки.

И вытирая мокренькие щечки,

Вы улыбнетесь сыну или дочке -

В глазах ребенка солнце отразится,

В его улыбке - ваша повторится.



Бывают слёзы от большой обиды,

И вам, порою, их не сразу видно.

Слезинки постепенно набухают,

Срываются и медленно стекают.

И очень долго не проходят тучки

На личике упрямой почемучки.

А вы, характер выдержать стараясь,

Не подойдете, мирно улыбаясь.



Бывают же совсем иные слезы –

Горючие, отчаянные грозы.

В глазах испуг, мольба, незащищенность,

Большое горе, страх и обреченность.

А вы стараетесь обнять дитя покрепче,

Прижать с горячей нежностью к груди,

Чтобы от зла и страха уберечь его

И от всего недоброго спасти.



Достойны вы поэзии и прозы,

Благословенные ребенка слезы.






 



© Copyright: Ирина Галинко, 2006

Свидетельство о публикации №106032801043 


 



 



Ален Лябуэль — фотограф  



 

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
kieplexacum

Мазь Psori Herbal

Понедельник, 12 Сентября 2016 г. 23:56 (ссылка)

bigimg (197x700, 84Kb)
За полный курс лечения заболевание исчезает примерно в 95% из всех случаев.
За полный курс лечения заболевание исчезает примерно в 95% из всех случаев.

Комментарии (0)КомментироватьВ цитатник или сообщество
tanuuusa

Притча о старом дедушке

Понедельник, 05 Сентября 2016 г. 11:09 (ссылка)


старый дедушка1 (650x604, 58Kb)



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


Сын и невестка стали все больше раздражаться из-за этого.


— Мы должны что-то предпринять, — сказал сын. — С меня достаточно того, как он шумно ест, пролитого им молока, и рассыпаной пищи на полу.


Муж и жена решили поставить отдельный маленький столик в углу комнаты. Там дедушка стал есть в одиночестве, в то время как остальные члены семьи наслаждались обедом. После того, как дедушка дважды разбивал тарелки, ему стали подавать еду в деревянной миске. Когда кто-то из семьи мельком взглядывал на дедушку, иногда у него были слезы в глазах, потому что он был совсем один. С тех пор единственными словами, которые он слышал в свой адрес, были колкие замечания, когда он ронял вилку или рассыпал пищу.


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


— Чем ты занимаешься?


Так же доверчиво мальчик ответил:


— Я делаю маленькую миску для тебя и мамы, из которой вы будете кушать, когда я вырасту.


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


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


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

Метки:   Комментарии (7)КомментироватьВ цитатник или сообщество
Людмила_48

ПРОСТИ...НЕ НАДО СЛЁЗ...

Четверг, 25 Августа 2016 г. 17:32 (ссылка)

Цитата сообщения Ольга_Фадейкина


104548191_90129270_65076368_0_1_1 (460x540, 77Kb)
106760555_0_4e11a_2ace5bdb_XL (457x74, 70Kb)

Я письма жгу твои... Читает пламя строчки... И плавятся слова...
И всё сильней огонь, Что превратил мечты в обугленные точки,
Упавшие золой в дрожащую ладонь...
106760555_0_4e11a_2ace5bdb_XL (457x74, 70Kb)
Я жгу хмельной сентябрь... и листопад... и осень...
И корчится тоска в безумии огня,
Из памяти стерев, как не бывало вовсе,
Мелодию любви, в которой ты и я...
106760555_0_4e11a_2ace5bdb_XL (457x74, 70Kb)
Дрожит огонь свечи... сжигает без возврата Напрасные слова, бескрылые мечты...
И всё острее боль, и горечь, и утрата... И мечется душа в объятьях пустоты...
Я жгу твоё "прости" за осень до разлуки,
Рассыпав пепел строк снегами на виски...
106760555_0_4e11a_2ace5bdb_XL (457x74, 70Kb)
Мелодии любви истерзанные звуки Сжигают небеса касанием руки...
Не письма жгу твои... а выжигаю душу...
И нежность, и любовь у бездны на краю...
106760555_0_4e11a_2ace5bdb_XL (457x74, 70Kb)
Прости... не надо слёз...
Я больше не нарушу Ночную тишину отчаянным "люблю"...
Я имя жгу твоё, спалив дотла надежду...
Я жгу твой поцелуй и падаю в рассвет...
Прости, я не вернусь...
Уж не звучит, как прежде, Мелодия любви,
Которой больше нет...

Ольга Колпакова
106760555_0_4e11a_2ace5bdb_XL (457x74, 70Kb)

geniavegas
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Финская_Ведьма

27.05.2013 Imaginaerum Pt.III

Пятница, 12 Августа 2016 г. 23:56 (ссылка)


Я не первый раз контактировала с Фридманом и знала,что старый хуй будет залупаться по поводу фото и разговоров. История с "Кукрыниксами" свежа в памяти,как никогда.Но самое смешное,что у выхода до и после он кланялся (!!) мне,улыбался и был учтив.Но внутри,в комнате с Туо и Марко он устроил очередное дерьмо-руками не трогать,не фотографировать,не Дай Бог-не дыхнуть.Мы успели сделать главное: Перекинуться парой фраз и.....Я взяла его за руки.Самые лучшие на свете руки.Такие,как я хочу.Такие,как надо.Идеальные.Наполненные той самой силой,энергетикой.Для меня это человек,просто постояв рядом с которым несколько минут можно уже наполниться на долгое время.Он необычайно силен,мой маг и волшебник.Сказала ему,что люблю его.



Получила заветные автографы,но главным было не это.....



1087161_5GeM52ArrNw (392x700, 151Kb)



1087161_A1del7jSts (700x392, 47Kb)



1087161_wBkKGqIREE (700x392, 44Kb)



Когда я вышла на улицу,я увидела огромную толпу.Я даже не знаю,сколько точно было народу? 1000? Больше?



1087161_i2rmy1sRnaw (700x466, 86Kb)



1087161_tEsk6DcBofc (465x700, 248Kb)



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



1087161_Y1mgMH4eApI (402x604, 72Kb)



.Я попросила у Моны телефон,на моем не было денег.....У мелкой в этот момент должно было закончиться ЕГЭ по русскому языку и я позвонила ей...Оказалось,что она уже дома...И рядом с ней сидит Юра....Я начала ей рассказывать о том,что произошло,какой он (Туо) замечательный,какой он потрясающий,что я взяла ей автографы ...и................сорвалась ....просто все,что я говорила Свете,я говорила сквозь ВОЙ...Я рыдала,закинув голову  к небу в этом чертовом грязном "колодце"...Я даже не знаю,сколько времени прошло...Но когда я обернулась,я увидела их......Толпу,очередь,которая практически вся была развернута в мою сторону....Я первый раз увидела наглядно собственную боль,собственный страх......Я стояла там одна от начала и до конца....Я и толпа непонимающих лиц,в которых не было ничего похожего на то,что я искала...........Я так хотела найти хоть одни СВОИ глаза......,но все они осуждающе смотрели на мое зареванное лицо....



Я аккуратно подошла к девочкам....,которым Симона уже судорожно объясняла,что я "слишком чувствительная".....



Мы прождали Туо с Марко часов до пяти вечера....,Я была уже абсолютно разбита происходящим..Когда Туо вышел на улицу,я тихо,почти шепотом произнесла "Туося"...(так ванильно...не знаю,вырвалось)....До сих пор меня удивляет,что он резко повернулся,как-будто услышал и смотрел в упор на меня...



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



1087161_GgeAiqjp1Y (409x604, 49Kb)



1087161_0EESejp8F0s (604x453, 61Kb)



1087161__0tEhoFi4l0 (604x398, 78Kb)



1087161_887nT_Nizp8 (604x402, 63Kb)



1087161_ChrZpgzayUA (604x402, 88Kb)



1087161_pQfxwIkvSVs (604x402, 75Kb)



1087161_SQHeZsPRueE (604x402, 80Kb)



1087161_PZ9IU21jFTM (604x430, 66Kb)



 



Проводили ребят в машину,



https://new.vk.com/video?z=video191033577_165258125%2Fpl_cat_updates



и еле волоча ноги я поехала забирать Кирилла из садика.....,но это был не конец...


Метки:   Комментарии (2)КомментироватьВ цитатник или сообщество
Людмила_48

Не причиняй мне боль, прошу тебя, не надо!!!

Среда, 10 Августа 2016 г. 17:21 (ссылка)

цитата сообщения Puxovaia



Не причиняй мне боль, прошу тебя, не надо!!!
Я не игрушка, чтоб меня ломать.
Порой хватает одного лишь взгляда.
Чтоб душу человека разгадать.

Ты словно бес вселился в мои грезы.
Ты ищешь развлечения во мне.
И...зная это, сквозь тоску и слезы.
Я все равно опять бегу к тебе.

Смешная жизнь! Что делаешь со мною,
Зачем его послала на пути.
Чем, Боже, провинилась пред тобою.
Что не даешь спокойно мне идти.

Но как же хочется на миг тебя увидеть.
Услышать твои добрые слова.
Потом весь день себя же ненавидеть.
Такая вот дурная голова.

Не причиняй мне боль, уйди с моей дороги.
Сама я не могу тебя прогнать.
И не топчи души моей пороги.
Я не игрушка, чтоб меня ломать.
© Copyright: Татьяна Акинина, 2012
Свидетельство о публикации №112091000435



Puxovaia.
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
nuvola6986

Любовь и Школьные годы

Понедельник, 01 Августа 2016 г. 23:55 (ссылка)


макс (591x358, 46Kb) Настроение сейчас - Такое настроение бывает редко







Села поработать ночью и для настроения включила один клип, который как машина времени перенес меня в школьные годы...Урок географии, учительница рассказывает новую тему, слова почти не слышу а сердце вот вот выпрыгнет или остановится...от мысли что ты сейчас уйдешь из нашей школы. Выбегаю из класса, а глаза в поисках тебя. Ты забрал документы и уже выходил из школы...Мы стоим одни в желтом тамбуре, где всегда проверяли сменную обувь.Без слов. Наши глаза. Только я и ты. Я тебя обнимаю, чувства были такими как будто я тебя вижу в последний раз, а слезы капают обжигая кожу. Как я могла так дотянуть, и чуть тебя не потеряла...Потерять наши с тобой совместные посиделки на уроках, и как мы с тобой слушали вместе плеер на уроках литературы. Как мы списывали у друг друга и получали за это двойки...))) Учительница делала нам замечания, а мы просто учились любить... Я до сих пор храню твою тетрадку по геометрии...Как здорово что это было со мной. НЕЗАБЫВАЕМО. Всем Добра и Любви.

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
skynight

Когда уходит любовь, остается старый плюшевый мишка и дождь из слез…

Воскресенье, 31 Июля 2016 г. 14:30 (ссылка)


5600607_sky31 (700x672, 71Kb)

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Bliss_S

Нужно только поднять голову

Суббота, 30 Июля 2016 г. 14:31 (ссылка)

Это цитата сообщения Мальцева_Марина Оригинальное сообщение




 



4239794_ (604x604, 52Kb)


Ищите людей страстных, сильных, счастливых... Они как звёзды, пока голову не поднимешь – не увидишь. А когда утонешь глазами в звёздном молоке  понимаешь, какое их бесчисленное множество.   Далее>

Метки:   Комментарии (1)КомментироватьВ цитатник или сообщество
Мечтающая_о_многом

Будто мама за ручку держит...

Суббота, 23 Июля 2016 г. 13:19 (ссылка)



2222299_81779396_large_z_c1b02896_1_ (700x525, 53Kb)




 


Вновь промокли от слёз ресницы,

Боль, как- будто металла скрежет.

В детском доме ребёнку снится -

Мама за руку крепко держит.



Взять бы душу связать на спицах,

В этом мире мы все невежды...

В детском доме ребёнку снится -

Мама за руку крепко держит.



Люди с детства привыкли злиться,

Повышая на близких голос....

Боже правый, у них не лица -

Пустотою чернеет космос!



Хочешь кофе ещё с корицей?

Чтобы думать о бедах реже.



... А вот деткам в детдоме снится,

Будто мама за ручку держит...


 



 


© Copyright: Ангелина Болотская, 2015

Свидетельство о публикации №115121006180


 


Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Страх и ненависть и пагинация

Пятница, 22 Июля 2016 г. 10:39 (ссылка)

А в чем проблема?



Типичная пагинация



Как бы нам не хотелось этого отрицать, практика показывает, что подавляющее большинство своего времени типичный iOS-разработчик проводит за работой с табличками. Проектирование сервисного слоя — это интригующе, разработка универсального роутинга в приложении — захватывающе, а от настройки гибких политик кэширования вообще крышу сносит, но работа с табличными интерфейсами — это наши серые будни. Иногда луч света все же попадает и в эту область, и вместо очередной возни с constraint'ами перед нами может встать задача реализации постраничной загрузки — или, как это модно называть в мобильных приложениях, infinite scroll'а.





Грузить сразу все новости, объявления, списки фильмов с удаленного ресурса как минимум не эффективно, поэтому в большинстве случаев сервер предоставляет клиентам различные механизмы разбития всего объема данных на части ограниченного размера.



Как говорится, so far so good. Мы загружаем первую партию данных, отображаем их в таблице, прокручиваем её до конца, загружаем следующую партию — и так до бесконечности. К сожалению — ну или к счастью, мы же любим вызов — на этом все только начинается.



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



Условия, с которыми нужно было работать:




  • любой из загруженных элементов может быть изменен с течением времени;

  • на стороне клиента нужно уметь прятать посты авторов из черного списка — учитывая, что сервер продолжает их возвращать;

  • несмотря на локальную фильтрацию, при запросе следующей страницы пользователь должен получить не меньше 20 новых элементов;

  • выдача целиком пересобирается раз в час — некоторые посты добавляются, некоторые — исчезают, и обязательно меняются все позиции в списке;

  • обращение к серверу идет не напрямую, а через CDN, что влечет за собой интересные артефакты;

  • единственный механизм постраничной загрузки, который может предложить сервер — это limit/offset.



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



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



Сколь угодно сложная проблема или задача становится решаемой, если разбить её на ограниченное количество шагов. Наш случай не исключение. Чтобы понять принцип работы всей системы постраничной загрузки в вашем приложении достаточно декомпозировать её на несколько секций:




  1. Правила изменения количества элементов в выдаче:


    • Лента статична. Пример: Список заведений в редакционной подборке. Будучи один раз составленным, он уже не меняется.

    • Новые элементы добавляются строго сверху. Пример: История просмотра страниц приложения. В самом простом виде единственное её изменение — это добавление в начало списка новых просмотров страниц.

    • Любая часть выдачи может быть изменена. Пример: Список писем в почтовом клиенте. Пользователь может удалять, перемещать и получать новые письма, поэтому список может быть изменен на любой позиции.


  2. Правила изменения актуальности выдачи:


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

    • Выдача может быть переформирована в неопределенный момент времени. Пример: Новостное приложение с интеллектуальным ранжированием. Раз в час выдача новостей пересобирается и наиболее актуальные материалы перебираются в самый верх списка.


  3. Правила обновления контента:


    • Отображаемые данные не обновляются. Пример: Ячейки с названиями ресторанов. Смена названий настолько редка, что этой вероятностью можно смело пренебречь.

    • Отображаемые данные могут быть изменены. Пример: Ячейки со счетчиком лайков. С течением времени этот счетчик меняется — и нужно уметь обновлять эти данные для уже закэшированных элементов.




Задача реализации постраничной загрузки чаще всего делится на две крупные части: подгрузка данных вниз и обновление ленты, обычно совершаемое при pull-to-refresh. К каждой из этих задач требуется свой подход, целиком зависящий от приведенной выше схемы.



Костыли



Этот раздел — ключевая часть всего материала. Я собрал все костыли, которые вынужденно использовал при реализации сложного механизма постраничной загрузки на limit/offset.



Небольшой ликбез. Limit/offset — это наиболее часто встречающийся подход к реализации постраничной загрузки данных. Offset — это сдвиг относительно первого элемента. Limit — количество загружаемых данных.



Пример: пользователь хочет загрузить 10 новостей, начиная с двадцатой. offset: 10, limit: 20.


Подгрузка вниз / Лента изменяется



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



Подгрузка вниз / Лента изменяется



Ситуация может быть и хуже, если за время отсутствия синхронизации на сервер добавилось элементов больше, чем установлено в свойстве limit — тогда мы не получим ни одного нового элемента. Если в качестве offset'а мы будем использовать общее количество элементов в кэше, то застрянем в этой точке навсегда, так как продолжим запрашивать те элементы, которые уже были загружены.



Проблема решается достаточно просто. При получении очередной порции данных мы подсчитываем количество пересечений с закэшированным контентом — и в дальнейшем используем полученное значение как сдвиг offset'а. В приведенном выше примере этот сдвиг будет равен 2.



paging.startIndex = cachedPosts.count + intersections;
paging.count = 5;


Подгрузка вниз / Любая часть выдачи может быть изменена



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



Подгрузка вниз / Любая часть выдачи может быть изменена



Выход из этой ситуации — всегда запрашивать данные с наложением в один элемент. Если при получении данных мы не найдем пересечений — можно либо отменить результат запроса, либо повторить его с другими параметрами.



paging.startIndex = startIndex - 1;
paging.count = 5;


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


Подгрузка вниз / Выдача может быть реструктуризована в случайный момент времени



В таком случае самым простым вариантом реализации будет работа с так называемым слепком ленты. Под этим термином обычно понимают список идентификаторов всех записей выдачи. При первом открытии мы запрашиваем такой слепок и сохраняем его в базе, либо просто держим в памяти. Теперь для получения следующей страницы мы будем пользоваться не стандартным limit/offset, а более сложным запросом — просить сервер отдать посты по конкретным 20 идентификаторам.



NSRange pageRange = NSMakeRange = (startIndex, 20);
NSArray *postIds = [snapshot subarrayWithRange:pageRange];
[self makeRequestWithIds:postIds];


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



Подгрузка вниз / Выдача может быть реструктуризована в случайный момент времени



Обновление ленты / Элементы добавляются сверху



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

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



Обновление ленты / Элементы добавляются сверху



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



if (intersections == 0) {
[self dropCache];
}


Обновление ленты / Любая часть выдачи может быть изменена



У проблемы есть два способа решения:




  1. Сервер отдает diff’ы изменений в ленте, к примеру, основываясь на сохраненном Last-Modified последнего синхронизированного состояния выдачи. Параметр Last-Modified мы получаем из заголовков ответа сервера. Клиенту в таком случае останется просто применить эти изменения на состояние базы.



    for (ShortPost *post in diff) {
    [self updateCacheWith:post];
    }



  2. Если сервер так не умеет — приходится снова писать дополнительную сотню строк на клиенте. Нам нужно получить слепок постов (прямо как в одном из предыдущих пунктов) и сравнить его с текущим состоянием хранимых в кэше данных.



    for (ShortPost *post in snapshot) {
    if (![cachedPosts containsObject:post]) {
    [self downloadPost:post];
    }
    }
    for (Post *post in cachedPosts) {
    if (![snapshot containsObject:post]) {
    [self deletePost:post];
    }
    }





Все отсутствующие в слепке элементы — удалить, все недостающие — загрузить.



Обновление ленты / Меняется сортировка



Если выдача была реструктуризована, мы должны об этом узнать. Проще всего это сделать, послав на сервер head-запрос и сравнив параметры etag или Last-Modified с сохраненными значениями.



NSString *lastModified = [self makeFeedHeadRequest];

if (![lastModified isEqual:cachedLastModified]) {
[self dropCache];
[self obtainPostSnapshot];
[self obtainFirstPage];
}


Если результат сравнения отрицательный — состояние кэша сбрасывается, слепок id обновляется.



Обновление ленты / Элементы выдачи могут меняться



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



for (NSUInteger i = 0; i < cachedPosts.count; i++) {
Post *cachedPost = cachedPosts[i];
ShortPost *post = snapshot[i];

if (![cachedPost isEqual:post]) {
[cachedPost updatePostWithShortPost:post];
}
}


Главное — максимально сократить количество передаваемых данных.



Советы на будущее



В завершении хочу дать несколько советов разной степени полезности.



Совет 1, очевидный



Бывает очень удобно иметь специальный объект, описывающий текущую выдачу. Назовите его списком, категорией, фидом — не важно.



@interface Feed: NSObject

@property (nonatomic, copy) NSArray *posts;
@property (nonatomic, copy) NSArray *snapshot;
@property (nonatomic, assign) NSUInteger offset;
@property (nonatomic, assign) NSUInteger maxCount;
@property (nonatomic, strong) NSDate *lastModified;

@end


Он может содержать текущий offset, максимальное количество элементов ленты, дату Last-Modified, слепок id — все, что нужно для описания списка элементов.



Совет 2, архитектурный



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

Отделяйте логику запроса данных от логики их получения, обработки и отображения.



Отделяйте логику запроса данных от логики их получения, обработки и отображения



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



В этом, к примеру, может помочь NSFetchedResultsController, уведомления CoreData или схожие механизмы других ORM.



Совет 3, маскировочный



Инкапсулируйте всю логику обновления ленты и пагинации в отдельном объекте — фасаде над сервисами, занимающимися непосредственной загрузкой.



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



Совет 4, самый главный



До последнего пытайтесь настоять на нормальной реализации постраничной загрузки на сервере. Limit/offset это, конечно, достаточно гибкое решение, однако клиент должен быть простым. Нет, правда, максимально простым!



Полезные ссылки




Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/306158/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Михаил_Шитов

Слёзы под дождём

Суббота, 02 Июля 2016 г. 09:30 (ссылка)


Настроение сейчас - грусть







Словно время мчится вспять, мы с тобою встретились опять

Парк усыпанный листвой, снова слышу голос твой родной

Я рукой прикрыл глаза, как невольно просится слеза

Будто не было и нет, тех ушедших вдаль пятнадцать лет

Здравствуй, как живешь?... Помнишь этот дождь?...

Снова, как тогда.., как летят года...

Как тогда - руке в руке. я осенний дождь дарю тебе

Затаив дыхание ждем, и, струятся слезы под дождем

Между нами сотни лет, кто найдет на то ответ - Прости...

Желтый лист на волосах, ты в моих, а я в твоих слезах

Здравствуй, как живешь?... Помнишь этот дождь?...

Снова, как тогда.., как летят года...

Как тогда - руке в руке. я осенний дождь дарю тебе

Затаив дыхание ждем, и, струятся слезы под дождем

Между нами сотни лет, кто найдет на то ответ - Прости...

Желтый лист на волосах, ты в моих, а я в твоих слезахМихаил Шитов





Прослушать запись Скачать файл


Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<слезы - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda