首页
学习
活动
专区
圈层
工具
发布
首页标签程序人生

#程序人生

云加校园模块-腾讯相关的求职与面试经验;升学考研考公交流;学习方法/技巧;总结的规律方法等;技术决策时的思维方式思路策略

【有奖问答】你的工位藏着怎样的个人风格?

第一次独立项目完成后,你有哪些值得留下来的经验?

【有奖问答】你有哪些提高工作效率的小工具推荐?(已完结)

喵喵侠人若无名,便可专心练剑。
作为一名前端开发,VSCode插件还挺多的,推荐几个实用的吧。 1.vue-helper 如果和我一样,经常写vue,那么这个插件必不可少,它可以快速补全常见的ui框架代码,比方说 element ui、ant-design-vue等,组件属性也可以很方便的插入;如果你想了解更多用法,可以直接通过组件点击跳转到官方文档。 当你想要快速跳转定义变量,比方说从template跳转到data里面,你只需要按住ctrl+鼠标左键,就可以快速跳转,简直不要太方便! 还有一个超级实用的功能,那就是按alt+x可以选中代码块,这是我最最常用的功能,比方说我这段代码要注释,无论是template还是methods,都可以选中这一块,实现快速选中、删除、注释等操作。快速选中配合cursor这样的ide指定特定行号很好用! 当然这款插件还有很多功能,可以自行探索。 2.Prettier 这个是代码格式化必备插件,不用多说,我分享一个我自己的配置吧。 { // 箭头函数参数是否使用括号 // "avoid" 表示只有一个参数时省略括号,多个参数时才添加 "arrowParens": "avoid", // 标签的闭合括号是否与内容在同一行 // false 表示闭合括号单独成行 "bracketSameLine": false, // 对象字面量的括号之间是否添加空格 // true 表示 { foo: bar } 而非 {foo: bar} "bracketSpacing": true, // 嵌入式代码的格式化方式 // "auto" 表示自动识别并格式化嵌入式代码(如HTML中的JS) "embeddedLanguageFormatting": "auto", // HTML空白敏感度 // "css" 表示遵循CSS的空白处理规则,影响元素间空格的处理 "htmlWhitespaceSensitivity": "css", // 是否在格式化后的文件顶部插入 @format 注释 // false 表示不插入 "insertPragma": false, // JSX中是否使用单引号 // false 表示使用双引号 "jsxSingleQuote": false, // 每行代码的最大字符数 // 超过这个长度会自动换行,设置为140 "printWidth": 140, // prose(散文)内容的换行方式 // "preserve" 表示保持原有换行,不自动格式化 "proseWrap": "preserve", // 对象属性是否使用引号 // "as-needed" 表示只在必要时添加引号(如属性名包含特殊字符时) "quoteProps": "as-needed", // 是否要求文件顶部必须有 @prettier 注释才进行格式化 // false 表示不需要,可以格式化所有文件 "requirePragma": false, // 语句末尾是否添加分号 // false 表示不添加分号 "semi": false, // 是否使用单引号代替双引号 // false 表示使用双引号 "singleQuote": false, // 缩进的空格数 // 设置为2个空格 "tabWidth": 2, // 对象、数组等末尾是否添加 trailing comma // "all" 表示尽可能添加(包括函数参数) "trailingComma": "all", // 是否使用制表符(tab)进行缩进 // false 表示使用空格缩进 "useTabs": false, // Vue文件中script和style标签是否缩进 // false 表示不缩进 "vueIndentScriptAndStyle": false } 基本上能涵盖大部分项目,部分的文件如果不想格式化,可以选择指定忽略,这里不过多赘述。 3.One Dark Pro 这是一款主题插件,非常好看,我用好多年了,分享一下。... 展开详请
作为一名前端开发,VSCode插件还挺多的,推荐几个实用的吧。 1.vue-helper 如果和我一样,经常写vue,那么这个插件必不可少,它可以快速补全常见的ui框架代码,比方说 element ui、ant-design-vue等,组件属性也可以很方便的插入;如果你想了解更多用法,可以直接通过组件点击跳转到官方文档。 当你想要快速跳转定义变量,比方说从template跳转到data里面,你只需要按住ctrl+鼠标左键,就可以快速跳转,简直不要太方便! 还有一个超级实用的功能,那就是按alt+x可以选中代码块,这是我最最常用的功能,比方说我这段代码要注释,无论是template还是methods,都可以选中这一块,实现快速选中、删除、注释等操作。快速选中配合cursor这样的ide指定特定行号很好用! 当然这款插件还有很多功能,可以自行探索。 2.Prettier 这个是代码格式化必备插件,不用多说,我分享一个我自己的配置吧。 { // 箭头函数参数是否使用括号 // "avoid" 表示只有一个参数时省略括号,多个参数时才添加 "arrowParens": "avoid", // 标签的闭合括号是否与内容在同一行 // false 表示闭合括号单独成行 "bracketSameLine": false, // 对象字面量的括号之间是否添加空格 // true 表示 { foo: bar } 而非 {foo: bar} "bracketSpacing": true, // 嵌入式代码的格式化方式 // "auto" 表示自动识别并格式化嵌入式代码(如HTML中的JS) "embeddedLanguageFormatting": "auto", // HTML空白敏感度 // "css" 表示遵循CSS的空白处理规则,影响元素间空格的处理 "htmlWhitespaceSensitivity": "css", // 是否在格式化后的文件顶部插入 @format 注释 // false 表示不插入 "insertPragma": false, // JSX中是否使用单引号 // false 表示使用双引号 "jsxSingleQuote": false, // 每行代码的最大字符数 // 超过这个长度会自动换行,设置为140 "printWidth": 140, // prose(散文)内容的换行方式 // "preserve" 表示保持原有换行,不自动格式化 "proseWrap": "preserve", // 对象属性是否使用引号 // "as-needed" 表示只在必要时添加引号(如属性名包含特殊字符时) "quoteProps": "as-needed", // 是否要求文件顶部必须有 @prettier 注释才进行格式化 // false 表示不需要,可以格式化所有文件 "requirePragma": false, // 语句末尾是否添加分号 // false 表示不添加分号 "semi": false, // 是否使用单引号代替双引号 // false 表示使用双引号 "singleQuote": false, // 缩进的空格数 // 设置为2个空格 "tabWidth": 2, // 对象、数组等末尾是否添加 trailing comma // "all" 表示尽可能添加(包括函数参数) "trailingComma": "all", // 是否使用制表符(tab)进行缩进 // false 表示使用空格缩进 "useTabs": false, // Vue文件中script和style标签是否缩进 // false 表示不缩进 "vueIndentScriptAndStyle": false } 基本上能涵盖大部分项目,部分的文件如果不想格式化,可以选择指定忽略,这里不过多赘述。 3.One Dark Pro 这是一款主题插件,非常好看,我用好多年了,分享一下。

【有奖问答】AI时代下,程序员还有必要系统性啃书去学习吗?(已完结)

我的观点:程序员依然需要系统地学习底层的基础知识! 简单来说,就是 AI 目前虽然能帮我们写代码、修 BUG、搞文档,但它不可能完全替代我们做那些有挑战性的事情。 如果你只靠 AI,最终会变成“工具使用者”,而不是“技术创造者”。 AI 给的代码不一定全对,有坑你得能看出来。没基础,你连坑在哪都不知道。AI只是一个工具,它让写代码变容易,但让写好代码更难。基础就是你的底牌,越是 AI 时代,越不能丢。 作为程序员依然需要知道底层的原理,比如算法、操作系统、编译原理等,因为这些是解决复杂问题、优化系统和做技术决策的基础。如果你连这些都不懂,那当遇到棘手问题时,AI 也没法帮你,只能靠自己解决。 所以说,在 AI 时代,程序员依然需要系统地学习基础知识,这样才能确保自己不被淘汰,还能驾驭 AI 提高效率,而不是被 AI 替代。... 展开详请

副业大于主业,是否可以放弃主业?

【有奖问答】你最想推荐给别人的一款游戏是什么?(已完结)

china马斯克全民程序员们,大家好
对我来说应该是《雪人兄弟》吧。 它既不是画面惊艳的 3A 大作,也不是剧情烧脑的叙事神作。没有复杂的操作,没有宏大的世界观。画面粗糙,玩法也简单,但它藏着我和小伙伴最珍贵的青春记忆,藏着两个少年为了同一个目标并肩作战的热血,也藏着不用多说就能懂的兄弟情。 第一次玩《雪人兄弟》,是初二的某个周末。我和发小秋林攒了半个月的零花钱,在旧货市场淘了台二手红白机,还顺带捎了张磨得有些反光的《雪人兄弟》卡带。那天我们背着书包直奔他家,把电视音量调得低低的,两根缠在一起的手柄一人攥一根。我总爱选红色背带裤的雪人,觉得扔雪球的动作更利落,他就只能拿蓝色的,还总在我快被怪物追上时,抢先堆个雪球把怪物困住;我们会为了谁不小心吃了重复道具拌嘴,有时候卡在同一关反复失败,我们就研究怪物出现的规律,直到窗外的天全黑了,才想起作业还没写。​ 后来我们上了不同的高中,见面的次数越来越少,那台红白机也被收进了他家的储物柜,落了层薄灰。去年过年回家,我们又翻出了那台机器,卡带插进主机时还 “滋滋” 响了两声,没想到画面居然还能正常显示。熟悉的背景音乐一响起,我们俩瞬间就安静了,手指下意识地按动着手柄,就像回到了初二那个闷热的周末。他还是习惯性地拿蓝色雪人,我还是选红色的,只是这一次,我们再也不会为了道具拌嘴,反而会主动把 道具让给对方。 我想把它推荐给每一个人,不是因为它有多精彩的玩法,而是希望大家都能在这款小小的游戏里,想起那些曾经和自己一起攥着同个手柄、为了通关拼尽全力的人,想起那些简单又热烈的旧时光 —— 那些时光里,有游戏,有笑声,还有最靠谱的兄弟。... 展开详请
对我来说应该是《雪人兄弟》吧。 它既不是画面惊艳的 3A 大作,也不是剧情烧脑的叙事神作。没有复杂的操作,没有宏大的世界观。画面粗糙,玩法也简单,但它藏着我和小伙伴最珍贵的青春记忆,藏着两个少年为了同一个目标并肩作战的热血,也藏着不用多说就能懂的兄弟情。 第一次玩《雪人兄弟》,是初二的某个周末。我和发小秋林攒了半个月的零花钱,在旧货市场淘了台二手红白机,还顺带捎了张磨得有些反光的《雪人兄弟》卡带。那天我们背着书包直奔他家,把电视音量调得低低的,两根缠在一起的手柄一人攥一根。我总爱选红色背带裤的雪人,觉得扔雪球的动作更利落,他就只能拿蓝色的,还总在我快被怪物追上时,抢先堆个雪球把怪物困住;我们会为了谁不小心吃了重复道具拌嘴,有时候卡在同一关反复失败,我们就研究怪物出现的规律,直到窗外的天全黑了,才想起作业还没写。​ 后来我们上了不同的高中,见面的次数越来越少,那台红白机也被收进了他家的储物柜,落了层薄灰。去年过年回家,我们又翻出了那台机器,卡带插进主机时还 “滋滋” 响了两声,没想到画面居然还能正常显示。熟悉的背景音乐一响起,我们俩瞬间就安静了,手指下意识地按动着手柄,就像回到了初二那个闷热的周末。他还是习惯性地拿蓝色雪人,我还是选红色的,只是这一次,我们再也不会为了道具拌嘴,反而会主动把 道具让给对方。 我想把它推荐给每一个人,不是因为它有多精彩的玩法,而是希望大家都能在这款小小的游戏里,想起那些曾经和自己一起攥着同个手柄、为了通关拼尽全力的人,想起那些简单又热烈的旧时光 —— 那些时光里,有游戏,有笑声,还有最靠谱的兄弟。

程序员真的有护城河吗?如果有的话?到底是什么?

【有奖问答】有哪些你闭着眼睛都能写出来的代码?(已完结)

VyrnSynx

腾讯云TDP | 先锋会员 (已认证)

在霓虹代码的荒野,拆解硬核未来的电子骨骼
1、形成条件反射的片段 就举一个前端开发中的小栗子吧,就是特别简单的表单处理,用的频率挺高的 import React, { useState } from 'react'; const InputForm = () => { const [inputValue, setInputValue] = useState(''); return ( <form onSubmit={(e) => { e.preventDefault(); console.log(inputValue); }}> <input value={inputValue} onChange={(e) => setInputValue(e.target.value)} /> <button type="submit">提交</button> </form> ); }; export default InputForm; 其实前端还有很多的的“第二本能”,举个小栗子:动态渲染、输入框绑定值、状态需要跨组件、hook等等,其实非常多我们都能下意识写出来。相当于被你铭记了,不用思考就知道的这些内容,某种程度上能够极大的帮助你提升开发效率。... 展开详请

面试过程中被问到过哪些问题让你印象深刻?

码事漫谈会点前端的C++/C#/Blazor开发工程师

之前某米汽车二面被问平时说的千兆网是1000MB还是1000Mb,是大B还是小b,之前确实从来没有留意这个问题。觉得十分有意思。

当时回答错了但二面过了,面试官解释了是小b,运营商宣传的千兆网实际是1000Mb

【有奖问答】退休后,你想开启怎样的人生?(已完结)

首先我会陪兄弟爬一次雪山,正所谓人往高处走,雪山上的美景,兄弟的陪伴,大自然的挑战,无不吸引着我,其次我想我会去冰岛看一次极光,对于热爱天文学的我,这是我从小的愿望,接着我会环球旅行,当然咯,要是资金不够的话下调为环国旅行,看看祖国的大好河山也挺好,哈哈哈哈哈哈……

国产化改造来袭,我们如何适应政策?

【有奖问答】你有哪些压箱底的程序员笑话?(已完结)

【有奖问答】工作中你都接到过哪些离谱的需求?(已完结)

月小水长公众号同名

当年在某大厂做出海业务,面向地区基建条件稍差,但是应用对网速有一定要求,

第一天入职的产品经理悄悄和我说,能不能写代码,优化下当地网速?

我笑了笑,说不行。

【有奖问答】编程路上,你经历过哪些“时代的眼泪”?(已完结)

​相信很多通过网上视频学习Java开发的小伙伴都是从Maven+IDEA开始的,工作之后就是在搭建好的框架下CRUD搬砖,但是我入职的新公司,接手的Java项目像是从时间胶囊里挖出的文物:​Eclipse工程里没有pom.xml,SVN仓库中散落着jdbc-2005.jar、common-utils-2008.jar等十余个年份各异的依赖包,甚至还有某乙方公司早已消失的加密工具包。手动导入jar包的仪式感,瞬间让我梦回大学课堂——老师正演示如何下载Tomcat插件和SQL Server驱动 ​1. 原始MVC封装​ 老项目的Controller层是赤裸的Servlet,映射关系在手写web.xml中硬编码: <servlet> <servlet-name>UserServlet</servlet-name> <servlet-class>com.xxx.legacy.UserServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserServlet</servlet-name> <url-pattern>/user_add.do</url-pattern> </servlet-mapping> 而所谓的“Service层”,是直接继承HttpServlet的类,内部用字符串拼接SQL完成数据操作: public void doPost(HttpServletRequest req, HttpServletResponse resp) { String name = req.getParameter("name"); String sql = "INSERT INTO users VALUES('" + name + "')"; // SQL注入风险赤裸暴露 DBUtil.executeUpdate(sql); // 手工管理连接池 } ​这种写法的震撼之处​: ​绝对的控制感​:开发者清晰掌控每个HTTP请求的生命周期,连ThreadLocal都是手动实现的; ​原始AOP思想​:在Filter里用try-catch-finally手动管理事务,比Spring的@Transactional早了十年; ​暴力美学测试​:直接写main()方法调用Service类,没有Mockito,但测试意图极其直白。 ​2. Delphi前端 + ExtJS​ 老系统前端是Delphi编译的exe桌面程序,新系统则用ExtJS 3.x实现B/S转型: // ExtJS的Grid数据加载方式(2009年风格) var userStore = new Ext.data.JsonStore({ url: 'loadUsers.do', root: 'data', // 字段映射全靠手动配置 fields: ['id', 'name'] }); userStore.load(); ​技术代差的撕裂感​: ​Delphi的“秒编译”​​:VB式的拖拽组件,点击运行直接生成exe,比Webpack热更新更简单粗暴; ​ExtJS的配置地狱​:调试一个布局错位需要翻遍2000行配置项,而Vue的<template>只需30行; ​跨时空的CI/CD​:部署靠邮件发送class文件包,服务器上手动替换,日志里打印着:All tasks completed successfully。 ​3. 黑暗森林​ 维护这类项目如同技术考古​: ​jar包罗生门​:反编译2005年的common-utils.jar,发现注释:“加班修复日期bug@xxx”; ​版本降级陷阱​:为兼容oracle-driver-9i.jar,被迫安装JDK 1.4; ​4. 老代码的启示​ 对比现代Spring Boot+Vue的流水线开发,老项目反而揭露了技术本质​: ​MVC的初心​:哪怕没有注解,用BaseServlet也能实现清晰的职责分离; ​SQL拼接的教训​:直接暴露注入漏洞,催生了后来的PreparedStatement和ORM框架; ​技术选型的轮回​:ExtJS的组件化思想,在React中借JSX重生;Delphi的快速开发理念,被低代码平台继承。 ​运维日志中的哲学​: [LegacySystem] Daily data archive completed. 那些在Eclipse里手动导入jar包的人,在Delphi控件面板前拖拽的程序员,才是真正“理解每一行代码重量”的工程师。 维护老系统如同在技术断层带中行走,但其中蕴含的原始工程思想​(如手动管理连接池、硬编码MVC)仍是理解现代框架本质的钥匙。我相信相比于现在的流水线生成,那时候的程序员应该会更有成就感吧... 展开详请
​相信很多通过网上视频学习Java开发的小伙伴都是从Maven+IDEA开始的,工作之后就是在搭建好的框架下CRUD搬砖,但是我入职的新公司,接手的Java项目像是从时间胶囊里挖出的文物:​Eclipse工程里没有pom.xml,SVN仓库中散落着jdbc-2005.jar、common-utils-2008.jar等十余个年份各异的依赖包,甚至还有某乙方公司早已消失的加密工具包。手动导入jar包的仪式感,瞬间让我梦回大学课堂——老师正演示如何下载Tomcat插件和SQL Server驱动 ​1. 原始MVC封装​ 老项目的Controller层是赤裸的Servlet,映射关系在手写web.xml中硬编码: <servlet> <servlet-name>UserServlet</servlet-name> <servlet-class>com.xxx.legacy.UserServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserServlet</servlet-name> <url-pattern>/user_add.do</url-pattern> </servlet-mapping> 而所谓的“Service层”,是直接继承HttpServlet的类,内部用字符串拼接SQL完成数据操作: public void doPost(HttpServletRequest req, HttpServletResponse resp) { String name = req.getParameter("name"); String sql = "INSERT INTO users VALUES('" + name + "')"; // SQL注入风险赤裸暴露 DBUtil.executeUpdate(sql); // 手工管理连接池 } ​这种写法的震撼之处​: ​绝对的控制感​:开发者清晰掌控每个HTTP请求的生命周期,连ThreadLocal都是手动实现的; ​原始AOP思想​:在Filter里用try-catch-finally手动管理事务,比Spring的@Transactional早了十年; ​暴力美学测试​:直接写main()方法调用Service类,没有Mockito,但测试意图极其直白。 ​2. Delphi前端 + ExtJS​ 老系统前端是Delphi编译的exe桌面程序,新系统则用ExtJS 3.x实现B/S转型: // ExtJS的Grid数据加载方式(2009年风格) var userStore = new Ext.data.JsonStore({ url: 'loadUsers.do', root: 'data', // 字段映射全靠手动配置 fields: ['id', 'name'] }); userStore.load(); ​技术代差的撕裂感​: ​Delphi的“秒编译”​​:VB式的拖拽组件,点击运行直接生成exe,比Webpack热更新更简单粗暴; ​ExtJS的配置地狱​:调试一个布局错位需要翻遍2000行配置项,而Vue的<template>只需30行; ​跨时空的CI/CD​:部署靠邮件发送class文件包,服务器上手动替换,日志里打印着:All tasks completed successfully。 ​3. 黑暗森林​ 维护这类项目如同技术考古​: ​jar包罗生门​:反编译2005年的common-utils.jar,发现注释:“加班修复日期bug@xxx”; ​版本降级陷阱​:为兼容oracle-driver-9i.jar,被迫安装JDK 1.4; ​4. 老代码的启示​ 对比现代Spring Boot+Vue的流水线开发,老项目反而揭露了技术本质​: ​MVC的初心​:哪怕没有注解,用BaseServlet也能实现清晰的职责分离; ​SQL拼接的教训​:直接暴露注入漏洞,催生了后来的PreparedStatement和ORM框架; ​技术选型的轮回​:ExtJS的组件化思想,在React中借JSX重生;Delphi的快速开发理念,被低代码平台继承。 ​运维日志中的哲学​: [LegacySystem] Daily data archive completed. 那些在Eclipse里手动导入jar包的人,在Delphi控件面板前拖拽的程序员,才是真正“理解每一行代码重量”的工程师。 维护老系统如同在技术断层带中行走,但其中蕴含的原始工程思想​(如手动管理连接池、硬编码MVC)仍是理解现代框架本质的钥匙。我相信相比于现在的流水线生成,那时候的程序员应该会更有成就感吧

北上广深杭等在外漂泊的程序员最终准备回老家省城,可以做哪些准备?有什么建议吗?

【有奖问答】作为程序员,你尝试过哪些副业?(已完结)

怪盗LYL菜鸟测试
1.卖玫瑰花 结局:赔钱 原因:进货价搞了 应该去花圃进货 2.卖泡泡机 结局:赔钱 原因:社恐 不敢喊 3.抖店 小红书 结局:赔钱 原因:不了解流程 电子订单需要先找快递谈充值并且买订单打印机 ,参加分销软件的活动自动上架了盗版产品 被罚款两千 4.卖水晶 结局:进行中 5.证件照小工具小程序 结局:进行中(目前赔钱、云开发租金比广告那几毛钱贵多了)... 展开详请

【有奖问答】有哪些适合程序员保持健康的小妙招?(已完结)

羑悻的小杀马特.追求技术 永无止境
放下键盘,拿起杠铃,把压力全砸在地上。每一次深蹲都像是在清理内存,每组卧推都像在重构人生。汗水滴落的声音,就是系统日志里最真实的success输出,有时候,一个功能怎么都想不通,结果跑完五公里回来,灵感突然冒出来,就像缓存被清了,脑子终于能加载新数据,健身教会我的不只是如何举起铁块,更是如何扛住生活的重压,所以,对我来说,健身房不只是一块挥汗如雨的地方,... 展开详请

大家都是如何当上领导的?

突然工作量剧增,但公司领导都没有任何表示,这种情况怎么办?

从事技术岗的我们,通常在没有方向和指引的情况下,往往不经意间忽视职场升职、加薪的底层逻辑与规则———是建立在信任与向上管理的前提下,实现低成本高效达成业务目标与个人职场升职加薪。

【有奖问答】你在技术工作中遇到的最大困惑是什么?(已完结)

Jimaks10年互联网搬砖经验,分享有趣好玩的技术。
有次接了个项目,一跑发现: 屎山v1.0.js 里全局变量乱飞 🌪️ 魔改版utils.py 函数500行,还tm没注释 🤯 改个按钮位置能崩三个页面 💥 怎么办? 硬着头皮缝缝补补? (天天凌晨修bug警告⚠️) 掀桌子重构? (老板:这需求明天上线!) 跑路? (下家可能还是屎山2.0...) 最后头发又秃了一圈,怪不得说程序员短命。。。... 展开详请
领券