全面讨论后端、前端、客户端的区别。.
帖子背景
楼主看到今年不少友友暑期实习都或多或少,被客户端岗位打捞起来面试;也有很多友友本来是投的后端,结果拿了客户端的offer,不知道改不改转客户端。
楼主之前在字节的CapCut做过半年的客户端开发实习生,对客户端有一个基本的了解,再加上后端楼主也实习过,所以两个方向的技术栈楼主都知道一些,所以来尝试讨论一下这个热门话题。
客户端技术栈
目前大厂的客户端方向,主要是三个方向:iOS端、安卓端和PC端
iOS:原生方向(不涉及跨端)是由Object-C和swift语言,OC苹果官方已经停止更新了,所以主流的原生方向,都是swift;跨端方向:flutter,跨端更加偏向前端。
安卓:java和kotlin,跨端和ios的方向一样,更多的交给前端完成ui绘制。
PC端:也可以说是桌面端,技术栈C++ qt、cef等。
当然三端都会涉及到C++,用于中间层SDK开发。
客户端日常工作及产品需求
1.对于native原生客户端来说,日常工作70%都是在画ui,利用swift、kotlin、qt封装好的ui组建进行ui绘制,动画跳转等,比如颜色、字体大小、ui组建的组合等等;剩下30%则是写一些端内的逻辑,比如文件/资源下载、缓存等等。
2.数据怎么来?后端开发会提供响应的http远程调用接口,客户端同学调用这些接口,请求数据。因此客户端开发不需要数据库(这里不讨论SQLite)、缓存中间件的使用。
3.当然在目前跨端技术的推广下,很多ui细节是交给前端开发去完成,客户端这边只需要搭建容器,也就是H5页面,比如我们常见的小红书推荐流、APP的各种弹窗,这部分ui的绘制都是前端完成,客户端开发只需要把容器搭建好就行,剩下的工作就跟打开一个网页是一样的。
4.一部分少量的客户端岗位,是完全不涉及ui的,比如C++ SDK客户端开发、客户端基础技术开发等等。
5.客户端页面渲染、优化,这部分跟应届生应该没什么关系,涉及到操作系统底层的优化,比如如果加快负责页面的渲染进度,如何让用户打开一个复杂页面更快,像视频剪辑类APP、地图类APP,开发难度非常大。
后端技术栈及日常工作
这块相信各位友友都很熟悉了,因为在学校学的,基本都是后端开发的内容,Java/Golang/C++以及数据库和中间件,楼主就不再展开。
关于日常工作的话,最基本的是提供rpc、http接口供前端和客户端调用。大伙对后端都比较熟悉,我就不再展开了。
实习/校招求职难度
这块不少同学都经历过客户端、后端的面试,相信大家也有自己的结论,楼主认为从过简历、面试难度的角度来说,客户端明显比后端容易。
1.过简历,对于应届生找实习或者是校招,客户端的简历不需要写那些微服务、中间件的项目、技术栈,只需要熟练掌握一门面向对象的语言,就可以过大厂简历,约到面试;而后端对技术栈要求更多,除了语言之外,还需要数据库、中间价等技术栈的熟练掌握
2.面试难度,客户端面试非常简单粗暴,接受转语音,即使是零客户端基础,面试的时候完全不问客户端的知识,只需要掌握计算机网络、操作系统、算法及数据结构的知识即可,连数据库都可以不会!后端大伙肯定都知道了,要求非常全面。
3.收到offer难度,对于应届生而言,想进大厂,肯定是客户端更容易,但是大厂对客户端的要求,也是很高的,大伙可以看看wxg、字节的客户端面经,问的难度确实不低,算法题难度也不低,因此楼主说客户端简单一些,是相对大厂后端的,并不是说点击就送。但是对于想进大厂拿高薪的友友来说,后端太卷,那客户端不失为一个好的选择。补充:对于不涉及ui的客户端开发,例如cpp sdk客户端开发、基础技术、内核开发的客户端方向,对cpp语言的要求会很高,难度和后端是差不多的。
客户端发展空间
这块楼主也看了不少帖子,也跟一些客户端资深从业者有过交谈,如果要说客户端不好,那主要是下面两点:
1.不好跳槽、岗位少,因为现在绝大多数的App,都是大厂的,比如阿里系、腾讯系、字节系等等。中小公司没有提供一定数量的客户端开发岗位。(比如校招进公司,工作一段时间后吃N+1,相比后端的同学,跳去其他公司,选择会少一些);再加上APP小程序(比如微信),浏览器等对客户端的影响,使得客户端岗位相比5年前,确实变少了很多。
2.职业前景,很多帖子吐槽客户端职业前景不好,发展空间受限;这点见仁见智吧,楼主并不认同,客户端的一些场景开发难度是非常大的,比如音视频剪辑、地图软件开发等等,涉及ui渲染优化等需求,技术深度也非常大,甚至需要使用深度学习、opencv、opengl等知识。其实天花板后端和客户端都一样的,不存在什么的客户端天花板更低,因为绝大部分程序员 都根本接触不到天花板,当然这也只是鼠鼠的个人观点。
客户端优点
1.校招的薪资待遇和后端是一样的,甚至比后端要多一点(签字费多一些)
2.进大厂更容易,比如腾讯今年暑期实习,不少同学投的后端,被客户端打捞,最终拿到offer,过简历、面试难度是比大厂后端低的。
3.开发体验更好,客户端开发很直观,有什么bug、ui错误,在编译器的ui模拟器上非常清楚,不用像后端那样,还要进入隔离环境打印日志来排查,客户端开发直接本地编译、debug。
Offer选择
相信不少友友都面临着offer选择的问题,比如大厂客户端 vs 中/小厂后端,大厂核心业务客户端 vs 大厂边缘业务后端
1.如果秋招坚定后端的话,楼主建议是有后选后,客户端实习对秋招后端的帮助是有的,但是是有限的,比如有了客户端实习之后,秋招就会被客户端岗位打捞(当然也可以拒绝面试),然后被锁流程,导致面不到后端岗位,或者一些后端岗位要求有后端实习经验。
2.大厂客户端的实习内容肯定是有含金量的,如果不喜欢画ui,可以跟mentor、leader提出来,说安排一些写逻辑、优化的需求。因此没有心仪公司后端的offer,可以联系hr要到客户端ld、mentor的微信,提前了解部门的需求,问清楚。比如不涉及ui的客户端开发方向(前面有提及),楼主是推荐接offer的。
3.对于想走客户端开发的同学,那就选客户端吧!
如果有什么写得不对的,片面的,欢迎大家补充~
·我的实习求职记录· ·你的毕业论文进展如何· ·没有实习经历,还有机会进大厂吗· ·牛科在线求职答疑中心· ·我的求职思考·
早餐外卖app开发中业务端和客户端的功能设计。
各种订餐软件出现在我们的视野中。很多新手创业的时候,也会选择开发外卖app。但是在同一个行业竞争激烈的情况下,怎么才能另辟蹊径发展呢?当然是垂直细分领域。接下来我们来说说开发一款早餐外卖APP应该具备哪些功能?
商家端:
1.店铺首页:店铺首页包含提货验证、营业数据。营业数据既包含当日营业数据也包括历史营业统计,商家也可以查看任意一段时间内的数据。
2.商品管理:商品详情页包括商品管理、商品详情页、商品规格三部分。商品管理可以添加上传商品;商品详情页里包含商品主图、轮播图、评价、分类等;商品规格了可以添加商品规格和介绍。
3.订单管理:订单管理里面包含店铺所有的订单。待付款、待接单、已取消、已完成、评价管理等。
4.我的:我的里面包含提现收款账号管理、个人资料、店铺信息、账户明细、设置、营业状态、分类管理、商家认证等。
用户端:
2.首页:首页左上角是定位,用户可以手动选择自己所在城市或社区。首页主要展示的是小吃美食和店铺。用户进入店铺可以查看商品详情,并加入购物车或者立即购买,去结算。除此之外,首页还有搜索框,用户可以搜索商品或者店铺名称。
3.外卖模块:外卖模块展示的全部都是提供外卖服务的商家和美食。
4.个人中心:个人中心分为个人资料、我的订单、地址管理、账单明细、联系客服、设置五部分。
个人资料就是用户的头像、昵称、联系方式等;我的订单是用户的全部订单,包括待付款、待接单、进行中、已完成、待评价;地址管理里面是用户用过的所有地址,可以新增也可以修改删除;账单明细里面会展示用户每一笔订单的消费记录;联系客服是用户在使用遇到问题的时候可以联系平台反馈;设置里面可以修改密码、查看用户协议等。
骑手端:
1.外卖抢单:可选择自动抢单,或手动抢单,一键转单求助等。
2.定位系统:抢单完成后,骑手可根据系统定位规划的路线去取餐送餐。
3.我的:包括个人资料、收入明细、提现、联系客服、接单数量等。
本段是额外嵌入说明:来自红匣子编辑,作者用心编辑不图回报,与作者交流请166 2051 1776(可微)交换意见。
普通人也可以自己开发外卖app!附带外卖app开发功能模块
外卖的出现彻底颠覆了餐饮行业,点外卖成了大家日常生活中常见的事情。加入美团、饿了么等平台面临高额佣金,所以很多企业和创业者都想开发自己的外卖app。开发一个外卖app要多少钱?外卖app的开发需要包含哪些功能模块?
普通人自己也能开发外卖app!
在很多人眼中,开发一个外卖app是一件比较麻烦的事情,需要找专业的技术人员才能开发。其实,现在普通人自己也能开发制作外卖app了!
借助“红匣子”免编程app在线制作平台,普通人就可以使用平台上开发好的app功能模块,自己自由组合拼图式制作原生app软件。而且,红匣子还有开发完善的外卖app软件模板,可以直接使用啦。
外卖app开发需要哪些功能模块呢?
1、用户端
对外卖app的用户来说,主要的功能可以自动定位当前的位置,然后展示周边的商家美食,按照销量、距离、品类、价格等进行选择,在线下单完成支付,之后可查看配送信息、对产品进行评价、分享等,还能查看参与促销活动等。
2、后台管理端
在外卖app系统的后台管理点。主要的功能模块包括:
设置商家入驻系统、支持商家设置配送范围、骑手调度中心上线、支持设置多种多样的营销活动、商家抽点、商城结算、数据统计、消息推送等等。
3、商家端
主要针对入驻外卖app的普通商家,核心功能包括:
店铺及产品设置、营销活动设置、支付结算、在线客服、电话短信、店铺公告、订单管理、评价管理等等。
4、配送端
主要针对配送人员,功能包括:实时接单、帮助转接、异常订单、消息提醒、历史订单、配送收入、地图定位、导航等。