0

以前写 java 习惯分三层,感觉特别好,但是现在写 python,发现公司的代码竟然没有分层,由于年代久远,不知道是 当时写 python 的人太菜,还是 python 本身没有分层习惯。所以想问大家在开发 python 项目的时候都用什么结构,
补充点:

  1. 比如 python 前端传过来的参数 ,有没有校验器,

  2. 路由权限问题,比去在 /user/ 下面只允许 登录用户访问等,

  3. 比如 大家习惯不习惯写 service 等。

可能大家没有明白我意思。MVC 这种经典的在应用开发中都会用,不管是强的函数语言还是重的面向对象语言。但是任何一种语言 都有自己经典的风格或者经得起时间检验设计规则,比如 java view->controller->service->dao。
简单点说,我现在写 python 或者看别人写的python 感觉代码冗余太多,写这不爽,完全没有工程化语言的爽。所以想看看 python 大牛是怎么写代码的!

如果你实在不知道从何说起 那就回答上面几个问题吧!

5个回答

0

分层跟语言没有关系,这是一种软件思想,分层可以达到高内聚,低耦合的效果

一般项目中至少得分两三层,比如第一层controller,第二层service,第三层db,这个得看具体项目,怎么分视场景和技术leader而定,反正是很灵活的

0

python+django 应该是MTV模式的(相当于java的MVC):model template view。
至于项目架构、代码逻辑,确实是反应一个程序员能力的地方,很少有人写的代码能被大多数人接受。因为每个人都或多或少有自己的开发习惯,大多数人拿到别人的代码,第一感觉通常都是:这都写的啥玩意,这么乱呢。

0

除非你从零开始,不然类似于django,flask之类的框架其实结构已经帮你搭好了,或者一些第三方的plugin也能辅助解决问题。pyhton牛逼的地方就在于你可以一直站在巨人的肩膀上,比如pypi,如果一定要自己来,那就得视具体情况而定了,在最早写python的时候写的乱很正常,因为不知道有更简洁的语法或者已经很成熟的第三方库,重构永远都是进行中的日常

关于你补充的几点:这些和python语言没有半毛钱关系,顶多只能说框架本身的问题或者是写代码的人的习惯风格,如果你看深入了解python的web框架,你会发现分为lightweighted或full-stack,轻量级顾名思义缺少一些附加功能,全栈则一定能满足你的要求。python有个笑谈:基于pyhton的web框架比python的关键字都多。所以你的补充点,我觉得只是不熟悉罢了。如果真有这么多问题,instgram,dropbox等等的公司肯定更着急

0

比如python 前端传过来的参数 ,有没有校验器,

Python 代码菜。(当然,硬要扣“检验器”这类概念,那就是“写java的人菜”)

路由权限问题,比去在/user/ 下面只允许 登录用户访问等,

准确说,路由不一定有权限,权限应该是加在某个“合适的地方”。并且,权限本身也是“分层”的。这里的设计,是根据业务,根据代码组织方式来看的。

比如 大家习惯不习惯写service等。

写 java 的人菜。(不能说菜,只能说,没理解本质)

0

看自己吧!怎么用着舒服怎么来!

撰写答案