ARTS打卡计划第四周-Review-构建大规模django应用的一些建议

本周文章来源于https://medium.com/@DoorDash/tips-for-building-high-quality-django-apps-at-scale-a5a25917b2b5,这篇文章还是非常难阅读的。但是其中提到了一些django的实践还是很有借鉴意义。

文章中主要有如下观点

1、非常小心的设计你的apps

  如果你不明白如何去设计多个app,你可以保持只有一个app。如果你一定要分成多个app,你必须明确减少他们的依赖。app之间的依赖越少,每个app越容易打成一个微服务。

2、明确的指定数据库表名

  数据库表经常比应用程序更重要,而且活的更久,因此数据库表是核心的情况下,我们需要指定数据库表名。这样就算我们替换开发框架时候,数据表仍然一致。强烈推荐使用through 指定多对多时候的关联表,这样能更直白的获取数据交互

3、避免使用GenericForeignKey

  使用GenericForeignKey会导致很多查询特性无法使用,而且也会增加系统复杂性

4、保证安全的migrations

  不正确的使用migraitons可能会是服务器宕机

5、经常清理migrations文件

6、减少migrations之间的冲突

7、避免model中做太多的逻辑

8、谨慎的使用signals

9、避免直接使用orm的方法去处理数据,应该使用一些中间层次去处理,中间层再去调用orm

10、避免使用model cache

原文地址:https://www.cnblogs.com/dongqiSilent/p/10854304.html

时间: 2024-07-30 03:53:38

ARTS打卡计划第四周-Review-构建大规模django应用的一些建议的相关文章

ARTS打卡计划第二周-Review

本周review的文章是:https://medium.com/@hakibenita/optimizing-django-admin-paginator-53c4eb6bfca3 改篇文章的题目是:Optimizing Django Admin Paginator,How we finally made Django admin fast for large tables. django分页的时候,大部分时间都会消耗在求count上,本篇文章提到了几点用于提升大表分页的方法: 1.重写默认的分

ARTS打卡计划第四周

Algorithms: https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 采用了map的存储,然后移动窗口方式解决此问题,当然看到有个动态规划,一直很难理解. Review: https://www.infoq.cn/article/rAJiubRpi9xSl_LEhI2N 友谊与程序,生活与事业. Tips: c++11 : 1.右值引用 是对临时对象的一种引用,它是在初始化时完成引

ARTS打卡计划第一周-Review

本周分享的文章来自于medium的 Testing Best Practices for Java + Spring Apps 这个文章主要讲的是java测试的一些最佳实践 1.避免函数返回void,返回void不利于写单元测试,因为返回void不知道方法执行的内部情况 2.使用有意义的 assertions,可以使用  https://google.github.io/truth/ 类库 3.记得测试异常 4.可以使用变量进行多次测试 5.使用Mockito进行mock测试 原文地址:http

ARTS打卡计划第四周-ALGORITHM

866. 回文素数 求出大于或等于 N 的最小回文素数. 回顾一下,如果一个数大于 1,且其因数只有 1 和它自身,那么这个数是素数. 例如,2,3,5,7,11 以及 13 是素数. 回顾一下,如果一个数从左往右读与从右往左读是一样的,那么这个数是回文数. 例如,12321 是回文数. package com711; import java.util.ArrayList; import java.util.Collections; import java.util.List; public c

ARTS打卡计划第十四周

Algorithms: https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ Review: “How to write a good software design doc” by Angela Zhang https://medium.com/p/66fcf019569c Tips: android log 分类. kernel.radio.event.main这四种log.目前主要用了kernel 和event

ARTS打卡计划第一周

Algorithms: https://leetcode-cn.com/problems/two-sum/ Review: https://www.infoq.cn/article/EafgGJEtqQTAa_0sP62N Q版本,慢慢雏形已经出来. Tips: c++11 : 1.nullptr   是一种特殊类型的字面值, null 指针常量,可以转换成任意其他指针类型,是一个关键字.之前的NULL是一个预处理变量,需要单独引入头文件cstdlib,其值也是0. #ifdef __cplus

ARTS打卡计划第六周

Algorithms: https://leetcode-cn.com/problems/longest-palindromic-substring/ 中心扩展法首先考虑,当然看到有个动态规划,一直很难理解.动态规划要好好研究一番. Review: https://link.medium.com/rstYA3alzX Goodbye, Object Oriented Programming” by Charles Scalfani Tips: c++11 : 1.正则表达式 RE库. Share

ARTS打卡计划第八周

Algorithms: https://leetcode-cn.com/problems/repeated-substring-pattern/ 重复子字符串 Review: “I’m Leaving Google?—?and Here’s the Real Deal Behind Google Cloud” by Amir Hermelin https://link.medium.com/mPXXS8aBWX Tips: android : init.rc Android初始化语言包含了四种类

ARTS打卡计划第十周

Algorithms: https://leetcode-cn.com/problems/next-greater-node-in-linked-list/ 链表中下一个更大的值,双层循环及优化,后面看可以栈处理,学习了 Review: “Can You Avoid Functional Programming as a Policy?” by Eric Elliott https://link.medium.com/oWci9jdLjY Tips: android : Andorid  lin