Я рассматриваю создающие резервную копию данные из приложения для iPhone с помощью Google App Engine (GAE) - я также рассматривал использование Python для создания УСПОКОИТЕЛЬНОГО приложения для контакта с входящими/исходящими данными.
На стороне клиента я использую Базовые Данные, чтобы хранить информацию, которой я хочу создать резервную копию, и получить использование GAE.
Я задавался вопросом, были ли какие-либо хорошие учебные руководства/ресурсы при выполнении вышеупомянутого или является ли это, возможно, чем-то, что другие попытались реализовать.
Любой совет или указатели, приветствовался бы.
AN Реализация открытого источника сервера отдыха для Gae-Python доступна здесь .
Я ничего не знаю о Core-data, но я мог легко хранить объекты в GAE, если вы можете сериализовать их как двоичный или XML.
Двоичные объекты до 1 МБ могут храниться как BLOBPROPERTY , а строки как TextProperty .
Существует также API API Blobstore для объектов до 50 мегабайт .
Если вы хотите сохранить данные на сервере (или синхронизировать его), вы хотите пройти через посреднический формат. Я лично рекомендую JSON, так как его можно легко использовать с основными данными. Поскольку вы можете получить словарь всех значений в объекте, это тривиально преобразовать это дикцию к данным JSON и подтолкнуть его через провод на свой сервер. Затем ваш сервер может получить данные JSON и перевести его в любой формат, который сервер хочет сохранить его.
Это проблема, вызванная реализацией плавающих элементов, и возникает при наличии родительского элемента, который не содержит ничего, кроме плавающих дочерних элементов. Есть два метода его решения. Во-первых, свойство overflow
родительского элемента должно иметь значение hidden
, иногда называемое overflow method . Другой метод известен как метод clearfix и предполагает использование : после
псевдокласса.
Метод clearfix имеет то преимущество, что позволяет специально позиционированным элементам «зависать» вне родительского контейнера, если они когда-либо нужны, за счет дополнительной CSS и разметки. Это способ, который я предпочитаю, так как я часто использую висячие элементы.
-121--3140628- Когда вы повторно используете инструменты из стандартной библиотеки, а не «заново изобретаете колесо», самостоятельно кодируя их с нуля, вы получаете не только хорошо оптимизированное и настроенное программное обеспечение (иногда удивительно, как часто в случае itertools
компонентов): Более того, вы получаете большое количество функциональных возможностей, которые вам не нужно тестировать, отлаживать и поддерживать самостоятельно - вы используете все испытания, отладку и обслуживание многих великолепных программистов, которые вносят свой вклад в стандартную библиотеку!
Поэтому инвестиции в понимание того, что предлагает вам стандартная библиотека, быстро и многократно повторяются - и вы сможете «воспроизводить из памяти» так же, как и для заново изобретенного колесного кода, действительно, возможно, лучше благодаря большему количеству повторного использования.
По пути термин «group by» имеет хорошо определенное, идиоматическое значение для большинства программистов, благодаря его использованию в SQL (и аналогичному использованию в itertools
собственно): Поэтому я бы предложил вам избегать использования его для чего-то совершенно другого - это только приведет к путанице в любое время, когда вы сотрудничаете с кем-либо еще (надеюсь, часто, поскольку расцвет сольного, «ковбойского» программиста давно ушел - еще один аргумент в пользу стандартов и против реинвенции колес; -).
Наконец, ваша docstring не соответствует сигнатуре ваших функций -- arguments-order error; -).
-121--4585751-Сопоставить основные объекты данных с объектами хранилища данных GAE? Если да, то это может быть сложно. Как вы говорите, вы должны реализовать логику сервера с python или Java, и вы r iPhone объекты в Objective-C. Для их сериализации/десериализации потребуется определенная схема.
Если бы для GAE требовалось только резервное копирование, проще было бы сериализовать объекты данных Core и сохранить их в GAE в виде блоков с парами «ключ-значение».
Мне неизвестно о каких-либо подобных подходах, поэтому я буду следить за этим постом.