前端真的可以这么水吗?
如题,OP 在一家小公司。公司里面有几位前端,现在有前端对接蓝牙设备的需求。且通讯格式已经固定。
在最近他们开发时在百度或者 chatgpt 搜索如何编解码 16 进制,而且和其他前端讨论这个问题。
然后我就看到了令人震惊的代码,他们把收到的数组数据转成字符串,然后再通过截取字符,通过字符串匹配解码,或者在把这字符通过 parse 转为 实际的十进制
最离谱的是,当你问起为什么不用位运算,与或非,数组之类的。他们很有气势的说:前端不学进制转换。
离谱吧,当看到他们的命名更高血压,都是拼音首字母。不过!还好加了备注。
我见过最水的,我写的接口接受 post 参数,前端用 get 请求,我说换成 post 文档写的是 post 。下午前端还告诉我说请求不通,我过去瞅了一眼,用 post 请求 但传参还是 Get Query 。
因为这个是公司唯一的前端,当天下午我找领导说我不干不了要走(入职第二天,不敢想和这样的前端工作一年会不会被气死)
太正常不过。前端不学二进制。前端不会二进制。前端不会串口通信。。就因为这三个不会,我司硬是整出来一个 golang 做中间件把串口转成 websocket 。喂到嘴里。
不排除有牛人。但 99%的。。抱歉。。。看不起。
别说前端了,有的后端连 hex 字符串和 byte 数组也搞不清楚。16 个字节长度的密钥,经常直接只用了前面 16 个字符作为密钥,都不转为 byte
别开地图炮,前端后端都有水货,和岗位没关系,只是你恰好碰到的水货是前端。
位运算这种东西平时用的少我觉得正常,前端用的少就更正常了,不过这个转成字符串确实是奇葩。。。不会的话查一下就好了。
不能从一个技术点上就否定某个人整体的技术水平,每个人都有自己不懂的点。
前端在数据处理尤其是二进制这块确实很差,这是前端业务特性导致的。只要他能很好地沟通流程、完成需求,做到自己应该做的,就不水
所以一个会 JS 的后端是夺末的重要‼️
CSS 我写不过你,JS 你不行得有人能顶上才行。
别开地图炮,前端后端都有水货 我后端也不会
别从一个点就否定整个人,每个人都有自己不熟悉的领域。你说的这些东西前端平时接触少是事实,但你因为这个就瞧不起 99%的前端,有没有想过很多前端熟悉的领域你自己也不清楚呢
点进来前:我看看有多水,让我看看笑话。
点进来后:哦,这个我也不会。
湖南人嘴角都有一颗痣吗?
你也说了,这是家小公司,厉害的哪会去这呀
没办法,php 也是这样,晚清时期都是用 ascii 字符串来表示二进制。还好到了现代 js 才有了 TypedArray ,比 php 处理二进制更方便点
太难教了,直接写几个函数照抄,ArrayBufferToBase64 Base64ToArrayBuffer ,NumberToArrayBuffer ArrayBufferToNumber ,ArrayBufferToHex HexToArrayBuffer 全家桶
xiangyuecn.github.io/Recorder/assets/%E5%B7%A5%E5%85%B7-%E4%BB%A3%E7%A0%81%E8%BF%90%E8%A1%8C%E5%92%8C%E9%9D%99%E6%80%81%E5%88%86%E5%8F%91Runtime.html?jsname=lib.js-binary-bytes
我通过“嵌入式 奇技淫巧 sillydaddy” 搜索到了 v 友面试遇到的一个题目给楼主看能不能做出来:
“请用一个 C 语言表达式判断某个数是否为 2 的 N 次幂 ”
前端确实用不到进制与非
我是在手搓了小端序读写后才发现 nodejs 里内置了 readInt16LE
人家拼音命名是菜了点,但是前端的事情你少管
人没有办法去熟悉自己不常用的东西
感觉 99%的前端没有对接蓝牙的需求 我刚开始也搞了很久 没有 gpt 之前 网上能搜到的资料感觉也不多
位运算效率高我们不否认,但前端的职责是更高效地完成需求,而不是硬套底层逻辑。如果非要按嵌入式的思路写,那你来前端搞一搞响应式布局、跨平台兼容和性能优化试试?不同领域有不同的开发习惯,技术选型要看团队和项目需求,强行按嵌入式标准衡量前端,那不如你们直接用 C 写前端?省得看不惯我们的实现方式。
js 那破语言,搞不好你一顿优化真不如人家直接字符串来的省心,不了解的语言还是不要乱加评论,你以为很简单的事实际上一堆坑
这个挺有意思,你们的前端页面是运行在浏览器的吗?是的话怎么通过浏览器跟串口通信?
话说我问 chatgpt: JavaScript 编解码 16 进制 数据,给我答案是:在浏览器中,你可以使用 parseInt 和 String.fromCharCode 来手动实现 16 进制的编解码。doge
查到了,是 Chrome.Serial
要是前端让你用 css 改个动画你不会,前端会笑你连动画都不会画吗?
术业有专攻罢了,不要动不动嫌弃别人。
正常用不到的技术不知道是正常的,但是有更优解不使用,别人好心提醒还不改正,这是态度问题
总感觉你们上班带着一股莫名的戾气,动不动就要挂人。我是比较友好的,再菜的人我都要教会他,因为我知道,十年前我也是个菜狗。
放心,后端大水逼也多的是
的确, 是我遇到的都是水货.
会不会那些专注图像处理、音频处理才会特地学二进制处理? 那我直接用其他语言写一个转换的接口
所以这个操作有严重的性能问题么,不谈数据大小、不跑性能测试在这夸夸其谈性能效率真不是在耍流氓么
别到时候一顿操作猛如虎,还不如 v8 在底层帮你做的优化
既然是前端,为什么要懂你说的这些东西,懂前端领域不就行了,懂了你能多给钱吗还是什么,最少的工资你要人家什么都要懂来服务你
水都能说一两个你不知道的点出来,然后说后端真的可以这么水。脾气好能干活就行啊
是否科班?什么学历?是否外包?薪资多少?加班情况如何?福利待遇如何?
抛开这些去讨论一个人的技术能力那不就是耍流氓吗?
再者,要怪你也要怪你们公司,为啥要怪这个人?是你们公司根据自己的筛选标准筛选了这个人,这个人有何罪之有?
一定要搞清楚真正的敌人,不要跟无辜的人盲目对立起来。
蓝牙用字符串通信没啥问题,很多硬件开发程序员的知识体系几十年没更新,有的协议是十进制 16 进制混着来的,别提多恶心。
我并不觉得, 因为进制转换是计算机的入门课程
的确术有专供, 但是进制转换不是计算机入门的课程吗? 而且这辐射所有计算机语言, 这不是术有专攻, 是基础不牢.
进制转换不是入门吗?
不聊性能, 我自己也通过 js 写出编解码的一个版本放在了 git 上.
不, 当建议他们使用数组或者 UintArray 等进行规范化处理时, 他们说: 还不如我这个字符串呢?
进制转换不是入门吗?
进制转换是入门,只能说你们公司的这几位比较水
的确, 心情太差了, 血压太高. 在这里先给前端同学说声对不住了.
我想看一下 js 写出编解码代码,能贴一个地址吗?
965, 无任何加班,薪资都在 16 左右.
我写这么多年 Java ,也没有用过进制、与或非。。一直都是 CURD boy 。但是有需要的话,还是能查一查,用起来的
他们薪资要的不低啊.
水的还是蛮多的 至少我的环境是这样 我现在就是 混就混吧 也过了掰头技术的年纪 只要别影响我就行了
世界本来就是个草台班子
协议是私有的,这个不好放出来. 大体结构就是如下:
接收的是 UintArrayBuffer
function decode(buffer) {
var result = {
"success": true,
"message": "成功",
}
if (buffer.length < 15) {
result['success'] = false;
result['message'] = "数据长度不符合最低要求."
return result;
}
// 切除无效数据, 直到获取到指定字符.
while ((buffer[0] !== 0x00 || buffer[8] !== 0x00)) {
buffer = buffer.slice(0, 1);
}
if (buffer.length < 15) {
result['success'] = false;
result['message'] = "无有效数据."
return result;
}
var offset = 0;
// 长度
var dataLength = ((buffer[offset] << 8) | buffer[offset + 1]) & 0xFFFF;
offset += 2;
// CRC
var data = buffer.slice(offset, offset + dataLength);
offset += dataLength;
// 校验 CRC
var crc = (((buffer[offset] << 8) & 0xFF00) | (buffer[offset + 1] & 0xFF)) & 0xFFFF;
var calcCrc = _calculateCRC16(buffer.slice(0, offset));
//
if (crc !== calcCrc) {
result['success'] = false;
result['message'] = 'crc failed. receive: ' + crc + ", calculate: " + calcCrc
return result;
}
return {
"succes": true,
"message": "成功",
"hex": byte2Hex(buffer),
"decode": {
}
};
}
🤔 和你对接的大概率水平和工资都和你差不多。
手里的 pixel7a , 下午换了一个移动的 NFC SIM 卡, 使用 和包 app ,办理了一个公交卡,充值 10 块钱, 然后去坐公交,刷卡失败; 回到小区,办理一个门…
楼主目前有一个跑的蛮好的在线软件,想要开始进行收费,之前想的方案是 stripe 为此还办理 HK 的卡,想着通过 HK 渠道开 stripe ,但是仍需要 HK 注册公司 想…
安装 vmare player 的时候提示要关闭 hyper-v , 网上搜了下资料,说要把 windows 自带的虚拟化禁用了,才能用 vmware 的虚拟化。 有懂的大师提…