我们应该怎么去开发

黑眼圈
• 阅读 924

今天与后端在调试接口,在过程中发现node端需要嵌套三个java接口才能拿到所需的数据。
这种调用方式是很恶心的,于是找到java同学讲明这个接口是前置接口,会影响整体的加载性能。

后端同学: "业务如何,第三方如何,你们node端如何。(涉嫌公司业务,大概是这个意思)""

我表示很理解,虽然代码会写的很恶心但后端同学说的确实是实情。

但这就是业务。

为什么现在很多互联网产品都有很多线上问题

整完后,在掘金上摸了下鱼。

我们应该怎么去开发

我们应该怎么去开发
不知道是谁最先试出了这个掘金用户名过长的BUG,搞的吃瓜群众们班也不好好上了,连先帝创业未半...这种用户名都出来了。

那么为什么会出现这种问题?

面上看是接口未对昵称长度进行限制,导致一但绕过前端表单校验就可以填写数据库所允许的最大值。

但,我并不这么认为里子也是这样。

现在互联网产品都有一个通病,这个病就是一切以快为基调。

迭代周期能快不慢,虽然加需求但是不加时间成为常态。

测试人员是即要测试用例也要测试质量,但就是不给测试时间。

于是就如你所见,虽然互联网产品的主流程都是通的,但总是会找到那么几个404或者是500。

然而,这并不能说这不对。在快速迭代的市场中,十年磨一剑似乎在互联网行业只会是个笑话。

从2010年开始成为程序员,2011转前端开发至今已经十年了。
对待以上所事情的态度一直在变化着,从"
shaX后端、shaX产品、shaX运营"到慢慢接受,再到理解。

由此也引申出一些对其它事情的看法,即然开始写了就一同写下来吧。

新技术要不要引入到已有的项目中

严格意义上讲,我是一个对新技术有一定抵触情绪的程序员,但时间久了以后又会中了真香理论。

比方说 扩展运算符...,第一次在项目中看到的时候一脸懵逼,了解后觉着无所谓,用多了真香啊。

但对新技术是一个态度,对把新技术引进已有的项目则还是另一个态度。

这些新技术与新语法,特别是像TypeScript这种改革性的技术一定要持慎重态度。
引入前需要确认是否做好重构的准备,需要充足的考虑这期间的人力消耗是否值当。

另外在引入前,需要确认自已是否已经对这套玩法足够熟悉。

任何以学习为目的,引入连自已都陌生的技术到项目中的行为都是不负责任的。

如果都没问题,引入后需要向协同开发人员进行同步。

关于上古代码的性能优化

有些项目,数据量大、页面复杂而且还带了几个动画,但就是加载快、交互流畅。

而有些项目,页面打开的同时风扇不吹上两下都觉着好像停电了。

风扇为什么会响?

那是风扇对上古代码的凝视。

那么对待上古代码的性能优化,我们又该如何下手呢?

网络上有很多文章在介绍formap,forEach的性能高出多少多少,说的有理有据。

心痒痒的去测试了下,别说还真是。

也有些上来就开始整webpack优化,上4上5上构建优化。
话说那文件打出来好几MB为单位的包,webpack表示也很无奈啊。

我认为理想的性能优化是有顺序的,这个顺序是基于改动与能效比为基调的:

  • 清理无用的资源文件
  • 公共的业务逻辑进行组件化、函数化
  • 整理常量文件,减少构建时的重复文本
  • 梳理逻辑,清理已经废弃的业务逻辑
  • 抽取函数式的工具类: 函数式编程在构建时可以很大程度的减少体积,并在抽取的过程中可以检验现有逻辑。

对于上古代码的优化,一定要注意能效比。

或者换个吃货的逻辑, 现在有一个果盘,有菠萝块有樱桃也有桃子和香蕉。

而你最喜欢的是菠萝,于是你首先把它挑出来放在了边上准备留在最后吃。

那么就洗洗手开吃吧,香蕉桃子扒拉扒拉。

等到还有樱桃和菠萝块时,你打了个饱嗝。

心想着,菠萝块明天再吃。

到了明天,你最喜欢的菠萝块坏掉了。

至于为什么要把菠萝切成块,完整的不更容易保存?这个得问下产品经理,平时需求下来的时候谁知道会不会把菠萝切成丝再放到果盘?

而我们的工作比起这更为复杂。

渐性优化,注重能效比。

对了,今天在使用公众号上传图片的时候也报了个500。

写在最后:
花了5年时候维护的跨框架表格组件: GridManager, 希望你来点个star。

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Symbol卢 Symbol卢
4年前
聊聊前后端接口对接的那些事
前言在现在的前后端分离的项目开发中,为了不影响项目的进度,都是前后端同时进行开发。为了不影响咱们前端开发的进度,通常都是由后端同学,先提供接口文档,然后前端同学对照这接口文档来进行数据的模拟来完成前后端对接的工作。这里的数据模拟其实也就是大家平时所说的mock数据,那么前端当中有哪些方式来实现mock数据呢???…(⊙_⊙;)…咱们接着往下聊!(●^o^●)
Easter79 Easter79
4年前
springboot2之优雅处理返回值
前言最近项目组有个老项目要进行前后端分离改造,应前端同学的要求,其后端提供的返回值格式需形如{"status":0,"message":"success","data":{}}方便前端数据处理。要实现前端同学这个需求,其实也挺简单的,
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Easter79 Easter79
4年前
SpringBoot写后端接口,看这一篇就够了!
摘要:本文演示如何构建起一个优秀的后端接口体系,体系构建好了自然就有了规范,同时再构建新的后端接口也会十分轻松。一个后端接口大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数据(response)。如何构建这几个部分每个公司要求都不同,没有什么“一定是最好的”标准,但一个优秀的后端
Stella981 Stella981
4年前
SpringBoot写后端接口,看这一篇就够了!
摘要:本文演示如何构建起一个优秀的后端接口体系,体系构建好了自然就有了规范,同时再构建新的后端接口也会十分轻松。一个后端接口大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数据(response)。如何构建这几个部分每个公司要求都不同,没有什么“一定是最好的”标准,但一个优秀的后端
Wesley13 Wesley13
4年前
JavaWeb 调用接口
JavaWeb 如何调用接口CreateTime2018年4月2日19:04:29Author:Marydon1.所需jar包!(https://oscimg.oschina.net/oscnet/0f139
Stella981 Stella981
4年前
RabbitMQ实现即时通讯居然如此简单!连后端代码都省得写了?
摘要有时候我们的项目中会用到即时通讯功能,比如电商系统中的客服聊天功能,还有在支付过程中,当用户支付成功后,第三方支付服务会回调我们的回调接口,此时我们需要通知前端支付成功。最近发现RabbitMQ可以很方便的实现即时通讯功能,如果你没有特殊的业务需求,甚至可以不写后端代码,今天给大家讲讲如何使用RabbitMQ来实现即时通讯!MQ
Stella981 Stella981
4年前
Linux应急响应(二):捕捉短连接
0x00前言​短连接(shortconnnection)是相对于长连接而言的概念,指的是在数据传送过程中,只在需要发送数据时,才去建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。在系统维护中,一般很难去察觉,需要借助网络安全设备或者抓包分析,才能够去发现。0x01应急场景​
API 小达人 API 小达人
2年前
JSON 格式的接口测试流程【Eolink Apikit】
在进行JSON格式的接口测试时,需要使用工具发送HTTP请求并获取响应。测试工具可以是单独的测试框架,如EolinkApikit。测试人员需要根据接口文档和测试用例编写测试脚本,然后运行测试并分析结果,以确保接口的质量和稳定性。当我们后端需要从前端拿到这些JSON数据,我们应该如何测试自己的接口呢?今天就来浅浅探讨一下JSON格式接口测试的流程。