GeekTop
  • 首页
  • 关于

GeekTop

不止代码

全栈开发

全栈开发

2023年4月10日 Alex Comments 0 Comment

前后端分离可能的问题

如果前后端角色分离,此时前后端人员同时工作在一条故事线上,可能会出现一些问题。比如配合不够默契,这时会出现一方空转的现象。但是如果前后端同时工作在两条故事线上,又不能实现端到端验收成果,可能会导致先完成的一方结束后还要再次返工的现象,而且,这个时候需要两个人同时了解所有的业务细节,这其实是不必要的。

而且,bug 最容易出现在边界处。由于业务上并不能像技术那样前后端分出明确的边界,所以前后端的问题不那么容易隔离。

开发者在合作的时候,会包含很多主观的假设,我们以为对方身上会具备某些知识,但是这毕竟是假设,我们无法做到心灵相通。

如果这些假设中包含某些错误,双方又没有意识到这些问题,这时候 bug 就出现了。

解决的办法就是全栈开发,每个人都同时写前端和后端。他不必是前端专家也不必是后端专家,但是两边都要会写。他的关注点不是技术知识,而是业务知识。他的工作目标是贯穿前后端的价值流,对单个故事进行端到端交付。

技术选型问题

前后端都用 JavaScript 在某些场景下是有效的,但是在企业应用中是不够的。至少在目前,企业应用领域还是 Java 的天下,我们这里讨论的全栈也是 Java + JavaScript 的全栈。

对于一个后端程序员来讲,可能不太好适应前端 JavaScript 那种风格,好在现在前端有了 Angular + TypeScript。

TypeScript 可以给你一些类型的安全感。Angular 的设计思想和 Spring 很像,依赖注入甚至比 Spring 还要彻底。虽然前端的技术风格一直不太稳定,各种新词层出不穷,但是 Angular 替你封装好了一切,至于前端工具链如何迭代,那是 Angular 开发组需要关注的问题,我们只需要安装 NodeJS 和 Angular CLI。

一些最佳实践

我一直觉得前后端有很大的共同点,差异其实没有那么大。而且最近这些年,前端越来越往后端靠拢,比如越来越工程化,也越来越重。

前后端也有一些共同的最佳实践。事实上,很多优秀的框架设计思想会相互吸收。比如 Spring 和 Angular:都采用了依赖注入的方式进行解耦;都提供了函数式编程;都提供了面向对象的编程范式;都提供了 AOP 支持。

虽然技术细节有很大的不同,但是从设计思想上来看确实有很多共同点。


编程

Post navigation

PREVIOUS
姥姥

发表回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

最近文章

  • 全栈开发
  • 姥姥
  • 设计一个可扩展的用户模型
  • 使用 Apple 的 Keychain 保存 SSH 的 passphase
  • 解决 ABA 问题
  • 关于 macOS 上面部分 emoji 无法显示的问题
  • 这些年我技术栈的变化
  • 搬瓦工、狗云、hostodo、oracle对比测试
  • Google Drive 无法上传文件
  • 使用 socks5 代理 git ssh 协议
  • 到底要不要“润”
  • 可复用的代码
  • 关于疫情的一点点反思
  • 我的风控策略(投资篇)
  • 我的风控策略(生活篇)
  • Spring Boot是如何处理异常的
  • 编码与解码
  • 基于统计的图像目标检索
  • 有限状态机和状态模式
  • API安全设计

近期评论

  • ǝɔɐǝԀʎzɐɹϽ发表在《可复用的代码》
  • Alex发表在《可复用的代码》
  • ǝɔɐǝԀʎzɐɹϽ发表在《到底要不要“润”》
  • ǝɔɐǝԀʎzɐɹϽ发表在《可复用的代码》
  • ǝɔɐǝԀʎzɐɹϽ发表在《我的风控策略(生活篇)》
  • ǝɔɐǝԀʎzɐɹϽ发表在《如何写出简洁优雅的代码》
  • 张志亮发表在《如何写出简洁优雅的代码》

分类

  • AI (2)
  • Java应用安全之道 (1)
    • 加密与解密 (1)
  • Odoo (2)
  • Python (1)
  • 图像处理 (1)
  • 年鉴 (1)
  • 数据库 (10)
  • 编程 (15)
    • Spring (1)
  • 读书笔记 (2)
  • 运维 (5)
  • 随笔 (10)

归档

  • 2023年4月 (1)
  • 2023年1月 (2)
  • 2022年8月 (1)
  • 2022年7月 (4)
  • 2022年6月 (2)
  • 2022年5月 (2)
  • 2022年4月 (3)
  • 2021年10月 (1)
  • 2021年7月 (1)
  • 2021年5月 (1)
  • 2020年11月 (1)
  • 2020年7月 (1)
  • 2020年3月 (2)
  • 2020年2月 (1)
  • 2019年1月 (1)
  • 2018年12月 (2)
  • 2018年11月 (2)
  • 2017年4月 (1)
  • 2016年11月 (1)
  • 2016年9月 (1)
  • 2016年7月 (1)
  • 2016年5月 (3)
  • 2016年4月 (2)
  • 2016年3月 (1)
  • 2016年2月 (2)
  • 2015年12月 (1)
  • 2015年11月 (2)
  • 2015年8月 (1)
  • 2015年4月 (1)
  • 2015年3月 (1)

标签

Database devops Java MySQL PostgreSQL Python shell Spring SpringBoot Spring Security 安全 年鉴 总结 编程 随笔
© 2015-2023   Geektop.net All Rights Reserved.