每次过年回老家聚会,遇到不熟悉的亲戚朋友,经常被问到职业是什么。一开始,我总是很认真的回答这个问题,结果常常引出一番尴尬的问答。
“你是做什么的?”
“我是做软件的,程序员。”
“做APP的吗?”
“不算是,但是又有关系,做APP分前端和后端,我做后端的。”
“什么是后端?“
“后端就是你看不到的东西”
“我都看不到,做了有什么用?”
“比如你在淘宝上购物,点了‘提交订单’按钮,弹出‘正在提交’的对话框,背后还做了很多事情比如核销优惠券、检查商品库存等等,这叫做后端。”
“你这样说我就明白了。”
“明白了吧!”
“你是管仓库的。”
以上是和一个读过大学的年轻人的对话,要是老年人就更谈不下去了。隔行如隔山,为了避免浪费口舌,我调整了一下策略。再有人问我“你是做什么的”,我都回答“修电脑的”,结果有好事者就掏个碎屏的手机出来,说“电脑可以修,手机也可以修吧?”。
严格来说,我算是全栈开发者,不是用Node.js通吃的伪全栈,而是掌握了HTML、CSS、JavaScript / JQuery、Vue、Android以及Java技术体系的真全栈。我并不是跟大家吹嘘自己技多不压身,因为掌握前端技术完全是生活所迫。如果可以选,我宁愿把花在JavaScript的时间用去学习Java。
一些小公司招人,给不起薪资的时候就会说“非常锻炼人”,这可不是套话。小公司为了节省成本,那可是人尽其用。只要是个程序员,还管什么前端后端,通通都要做。我就在这样的公司干过,被迫学会好多东西。我做过的前端项目里面,除了小公司项目,还有一部分是私活。
项目特点:这是我的毕业设计,程序员的蹒跚学步。在这个项目里,我把HTML和CSS运用的非常熟练,用原生JS校验表单、操作DOM。
运用技术:HTML、CSS、JavaScript、ASP、Access
项目背景:十年前的百度还无法高效的分辨文章是否原创、语义是否合理。将原创文章的句子打乱,加入特点关键字组成一篇新文章,叫做伪原创。这种伪原创文章读者看来狗屁不通,百度看起来是原创的。只要网站发布一定数量的伪文章,域名的年龄长一些,在搜索特定关键字时,能获得很好的排名。
项目特点:这是个人创业项目,用来采集、生成伪原创文章。为了做这个项目,我不得不学习PHP,因为ASP太孱弱、Java太繁琐。
运用技术:HTML、CSS、JQuery、PHP、MySQL
项目特点:这是某小公司的移动电商网站,只支持手机浏览,主要销售数码产品、服装。在这个公司里,我学会了很多技术,比如用冲击钻打孔、修打印机、装货架。
运用技术:HTML、CSS、ASP、MS SQL Server
项目特点:私活项目。采用Vue开发微信公众号售票功能,用iView开发Web管理端。开发了一个检票APP,运行在基于Android系统的手持检票机上。
前端技术:HTML、CSS、Vue 2.0、Android
后端技术:Java、Spring Boot、Mybatis、MySQL
在一次求职中,我删除了简历中所有前端相关的技能和项目经验,只找后端开发、系统架构相关的职位。放弃Web前端或者Android开发的原因有两个:
前端工程师调了一个后端接口,只要接口能调通,返回结果正确,就不用管什么了。负责接口的后端工程师,首先要精通业务逻辑,确保结果无误;其次接口设计要合理,尽可能高并发低耗时;充分考虑扩展性,严苛的情况下要监控接口的可用性。
在任务分工上,前端天然就离业务远一些。事实上,相当多的前端工程师主动远离业务,只做一个API Caller。
我们先来看看常用前端技术:
前端技术发展非常快,有些技术也非常复杂。以APP原生开发为例,性能优化就包含了很多方面,比如从简单的启动优化、 UI优化、 卡顿优化、 崩溃优化、安全性优化,到深层次的弱网优化、 大图加载优化、 储存优化、 高效传输优化、 极限瘦身优化,实际开发过程中的OOM问题原理解析、 ANR问题解析、 Crash监控方案。
然而,多数产品只是展示后端数据、基本流畅就行,不需要工程师深入了。通常企业要求前端工程师做到两点:高效率,三五天出个Demo;跨设备,一套代码多个平台用,节省成本。前端在中小公司发展面非常窄,最多就做个前端组长;只有知名大厂喜欢技术专精人才,要求研究框架原理和造轮子。
相比前端,后端工程师要掌握的东西也太多了,随便罗列一下:
除了上面的6点,还有大数据处理、分布式文件系统、Service Mesh等等。很多技术是一套解决方案,不能简单的归类为后端了。像淘宝这样高流量的网站,上面说的技术全都用上了,对前端而言,能看到也只是接口而已。后端开发的知识面很广,发展方向更多,许多技术管理的职位也是后端工程师担任,这是我转向后端的根本原因。
如果你做前端时间不长,而且兴趣不是特别大,建议转型做后端开发,会发现很多有趣的事情,比如加班特别多。
有很多文档介绍如何构建和创建以Rails作为后端的Ember.js应用程序。流行的解决方案是使用gems作为ember-rails和ember-source或合二为一的ember-appkit-rails。但是我正在尝试创建一个简单的Sinatra应用程序,该应用程序以Ember.js作为前端来处理仅JSON后端。我发现的少数资源似乎有点过时,所以我正在寻找简单的方法来做到这一点。所以我的问题是:我如何将Ember.js与简单的Sinatra后端集成?如何执行此操作的示例将不胜感激。 最佳答案 有一个verysimplerepoon
快捷目录前言一、涉及到的相关技术简介二、具体实现过程及踩坑杂谈1.安卓手机改造成linux系统实现方案2.改造后的手机Linux中软件的安装3.手机Linux中安装MySQL5.7踩坑实录4.手机Linux中安装软件的正确方法三、Linux服务器部署前后端分离项目流程1.前提准备(安装必要软件,搭建环境):2.前后端分离项目的详细部署过程:总结前言总体概述:本篇文章隶属于“手机改造服务器部署前后端分离项目”系列专栏,该专栏将分多个板块,每个板块独立成篇来详细记录:手机(安卓)改造成个人服务器(Linux)、Linux中安装软件、配置开发环境、部署JAVA+VUE+MySQL5.7前后端分离项目
当我在OSXMavericks上运行“geminstallcocoapods”时出现错误。$geminstallcocoapodsERROR:Couldnotfindavalidgem'cocoapods'(>=0),hereiswhy:Unabletodownloaddatafromhttps://rubygems.org/-badresponsebackendreaderror503(https://rubygems.global.ssl.fastly.net/quick/Marshal.4.8/cocoapods-0.27.1.gemspec.rz)ERROR:Possiblea
记个笔记以免遗忘,建议还是查看Element-UI提供的官方文档学习,自己摸索比较难受官方文档:Element-UI组件TableElement-UI官网提供了许多Table格式,这里以一个带有筛选器的表格为例表格的官网显示效果:直接将官方提供的示例代码贴入.vue文件中即可使用显示的数据是通过data()方法提供的假数据。方法见下:data(){return{tableData:[{date:'2016-05-02',name:'王小虎',address:'上海市普陀区金沙江路1518弄'},{date:'2016-05-04',name:'王小虎',address:'上海市普陀区金沙江路1
目录:1.在数据库中创建表2.使用代码生成功能,生成基础代码2.1修改代码生成器中配置文件generator.yml2.2使用系统工具代码生成3.新建子模块,迁移代码3.1创建grayskyax-assetsmanagement模块3.2在RuoYi整个项目下的`pom.xml`中引入刚刚新建的模块:3.3在ruoyi-admin模块的pom.xml中引入新建的模块3.4在新建的assetsManagement模块中引入ruoyi-common模块3.5将之前解压后的文件放如项目的对应目录下;3.6在数据库中执行生成的sql脚本3.7配置扫描路径application.yml,applicat
我这样渲染我的页面:response.render('index',{data:list//the`list`isanarrayvariable});在首页,我想将数据存储为globe变量,所以我尝试了:window.app=但结果是:window.app=[objectObject],[objectObject],[objectObject]那么我怎样才能以正确的方式做到这一点呢? 最佳答案 您可以将数据字符串化为JSON,它是javascript的子集,并将被解析为准确的数据结构。也可以使用以确保您的javascript不会被转
我想开发一个相对简单的应用程序,根据多个输入计算一些值。我不需要后端,所有的计算都可以在浏览器中完成。我对JavaScript和WebApps有点陌生,我遇到了Backbone.js.我真的很喜欢MVC设计,但是,他们经常提到后端。我的问题:是否绝对需要后端服务器?后端服务器是可选的,但如果没有后端服务器,Backbone就没有多大意义。或者backbone真的会帮助我吗? 最佳答案 不需要后端。如果您的应用程序不需要,Backbone可以在没有任何后端的情况下完全工作。这取决于您的应用。如果您想检索某些输入的值并计算结果,那么Ba
ChatGPT淘金热当前,爆发了ChatGPT热潮,吸引众多科技企业陆续加入其中。这与当年美国西部加利福尼亚的淘金热何其相似。历史总会惊人的相似,ChatGPT聊天机器人好比一座数字化时代的金矿。全世界科技淘金人蜂拥而至,从潮起到潮落,潮水退去之时,能生存下来的可能不是淘金人,而是卖铲子、卖牛仔裤等提供淘金基础工具的那批人。 站在ChatGPT的行业风口,除了超大模型的演进发展,还将诞生更多的小模型专注服务垂直领域,普惠千家万户,将是必然趋势之一。从大模型走向小模型,谁将是未来的大赢家?带着这个问题,我们不妨先来捋一捋ChatGPT背后的算力和经济账。01「似乎不止于此」ChatGPT带动了服
我目前正在从事一个项目,该项目涉及通过用户提供的文件进行解析,使用该数据进行计算,并使用图形实用程序可视化结果。现在,我坚持使用Python作为后端,因为它有JavaScript中不可用的科学库,但我想将整个工具移动到Web服务器,在那里我可以使用D3.js进行更流畅的可视化。工作流程类似于:从浏览器获取文件内容,使用内容执行Python脚本,返回计算值的jsonified对象,并使用D3绘制这些对象。我已经让后端和前端独立工作,但想知道:我怎样才能将两者联系起来?根据我收集到的信息,我需要做一些事情启动服务器、向服务器发送AJAX请求以及从服务器检索数据。但是由于框架数量众多(Fla
我试图通过JavaScript将一个字段的值发送到Struts2后端,但它返回NullpointerException。....提交表单后,请求将发送到以下JavaScript方法以发送到后端。functionpayslipPayment(){varformValues=$('#myform').serialize();....xmlhttp.open("get","../payslip/pay?"+formValues,false);xmlhttp.send();}请求将按如下方式创建和发送http://localhost/payslip/pay/employee.payslip.i