首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏CSS森林

    我的页面重构经验

    我的页面重构经验 由 Ghostzhang 发表于 2006-03-23 10:19 前两天跟群里的『白菜』兄谈到了学习web标准中遇到的问题,觉得很值得写一下,是我对标准的一些理解,希望对在学习web 下面是我的制作页面的一点经验,权当是总结吧,跟大家分享一下: 第一阶段 开始制作的时候,应该先从没有样式表文件的页面做起,做到最基本的结构,就是使用结构化、语义化的标记,如用ul,li标签或dl,dt,

    83670编辑于 2022-08-22
  • 来自专栏siri的开发之路

    Go项目重构经验分享——ORM框架实践

    一、背景介绍本文介绍了笔者在重构一个 Go 项目的实践经验,老项目由于迭代速度快,导致了接口杂乱,结构扁平,代码耦合度高等问题,在项目复杂度增加的情况下不再适合扩展,因此对整个项目进行了重构。 篇幅有限,本文主要介绍 ORM 层的重构。 三、ORM层目录结构老项目的目录结构比较简单,重构后根据标准Go项目目录结构 推荐的方式重新整理,当前的目录结构大致如下:.├── internal│ ├── handler│ ├── usecase string}// TableName 会将 PubInfo 的表名重写为 `pub_info`func (PubInfo) TableName() string { return "pub_info"}2. ,这一层需要注意的是多使用 Select(column1, column2) 方法指定需要查询、更新的字段,防止改变之前的业务逻辑相对于项目自己封装数据库操作接口,gorm 在带来便利的同时也提供了一些不确定性

    1.4K30编辑于 2023-09-25
  • 来自专栏女程序员的日常

    腾讯面试经验2

    例如:第一个数组有{1,2,3},第二个数组有{2,3,5},则合并后为{1,2,3,5}。 面试官提示我本道题是在64位系统下实现,而我需要的空间大小为元素取值的范围,也就是说最多能达到2^64远大于1Gb,所以这个方法是不可行的。 ? (2)我知道我一直没有利用到“有序”这个关键词,所以我抓紧这关键词,首先想到的是二分查找:以两个数组A、B合并为例,以A数组为基准,遍历B数组的元素,利用二分查找,将B的元素在A中找到最适合的位置, 若 他还是很耐心的跟我讲了一些对应届本科生的建议,最后说我阅历太少,经验不够,基础功不扎实。我回应了几句,并向他表示了真心的感谢之后离开了房间。   面试官的评价很到位,赤裸裸的现实,还是回校补补营养吧! 不过这份经历还是值的,一个毫无经验的应届本科生同几个研究生来竞争同样的职位,虽然结果很明显,但还是非常感谢面试官给我这个面试机会,而且整个面试过程中还那么耐心的引导我!

    3.4K10发布于 2017-12-25
  • 来自专栏开发笔记

    Chapter 2重构的原则

    1,什么是重构? 在不改变软件可观察行为的前提下,使用一些重构的手法,提高代码可读性。 换句话说,在保持软件可用的前提下,修改代码使得更加容易被理解。 2,为什么重构? 为了后续的代码维护和修改,易读是重构的核心价值。 除此之外,重构随之带来的好处有: 找到bug 提高编程速度(在代码量累计到一定程度时,重构过的代码会更加易于添加新功能) 3,什么时候重构? 使代码更易理解时重构 顺便重构(修复bug,添加新功能) 代码复审(code review)时重构 总而言之:重构的门槛远远没有想象中那么高,重构是对既有代码的修改,也许我们在无意识中就已经做了这样的工作 就如同重构的定义,在可用的前提下,提高重构的技术。 什么时候不应该重构? 对于一段凌乱的代码,如果不需要修改它,就不需要重构。 只有当你需要理解其工作原理时,重构才变得有价值。 如果重写比重构更加容易,那就不需要重构了。(判断) 4,重构会遇到哪些问题?

    84010发布于 2020-01-22
  • 来自专栏全栈程序员必看

    【《重构 改善既有代码的设计》学习笔记2重构原则

    【《重构 改善既有代码的设计》学习笔记2重构原则 本篇文章的内容来自《重构 改善既有代码的设计》一书学习笔记整理并且加上自己的浅显的思考总结! 2重构使软件更容易理解 可理解性之一:让第二读者更容易懂程序代码 所谓程序设计,很大程度就是与计算机交谈:让计算机按照你编写的代码来做事情。 (事不过三,三则重构2、添加功能时重构 最常见的重构就是添加新特性的时候,代码的设计无法帮助我们轻松的添加所需的特性。 3、修改错误时重构 遇到bug,解决bug的时候,可以进行重构2、修改接口 重构的时候如果要修改已经发布接口的要小心。如果有新旧接口,那么尽量让旧接口调用新接口。千万不要复制函数实现,陷入重复代码的泥潭中。 【这里需要进行评估,很多人接收新项目的时候,不愿意看别人写的代码,任何一个需求过来,都是些自己写一遍,说重构还不如自己写】 (2)如果没有足够的时候,不建议重构,或者早就应该重构

    82230编辑于 2022-07-20
  • 来自专栏IMWeb前端团队

    移动端重构实战系列2——line list

    这个UI应该是每个移动端网页都必备的,而且使用场景也是非常的丰富,所以这里我们采用一步步循序渐进的方式去重构。 display: block; width: 14px; height: 8px; border-bottom: 2px solid currentColor; border-left: 2px solid currentColor; transform:

    62820发布于 2019-12-04
  • 来自专栏腾讯IMWeb前端团队

    移动端重构实战系列2——line list

    ”本系列教程为实战教程,是本人移动端重构经验及思想的一次总结,也是对sandal及sheral UI的一次全方位剖析,首发在imweb和w3cplus两大站点及“前端Talk”微信公众号,其余所有标注或没有标注来源的均为转载 list,对应的scss组件为_line-list.scss,下图为line-list的一个缩影: 这个UI应该是每个移动端网页都必备的,而且使用场景也是非常的丰富,所以这里我们采用一步步循序渐进的方式去重构 display: block; width: 14px; height: 8px; border-bottom: 2px solid currentColor; border-left: 2px solid currentColor; transform:

    47910编辑于 2022-06-29
  • 来自专栏C语言

    C语言理论题经验分享2

    C语言理论题经验分享2 本文是接上一篇博文的^^: 理论题经验分享1 文章目录 C语言理论题经验分享2 1.关于switch 2.关于sizeof() 3.算数中的数据类型转换 4.文件输入\输出 只能是常整数(整数表达式或枚举常量),不能是变量 2.关于sizeof() 1)sizeof(str)会返回字符串长度+1(‘\0’) 2)sizeof(++a); 只进行sizeof操作,只看类型,不对 2)short型转换为int型(同属于整型) 。 ​ 3)float型数据在运算时一律转换为双精度(double)型,以提高运算精度(同属于实型) 。 4.文件输入\输出(IO) 关于文件的输入输出写在了这篇文章里面: IO操作 5.关于if()中的条件 1)If(expr1 && expr2)中,当第一个条件不符合时不会再验证第二个 2)当if语句中的条件为赋值语句时 ,实际上是将赋值后的结果与0进行比较【左值】 ​ if(1) 由于1>0 所以认为是true 6.关于结构体 1)结构体成员不能是函数 2)如果在某个函数中声明,只能在这个函数中用它来定义变量。

    49610发布于 2021-02-22
  • 来自专栏IMWeb前端团队

    移动端重构实战系列2——line list

    本文作者:IMWeb 结一 原文出处:IMWeb社区 未经同意,禁止转载 ”本系列教程为实战教程,是本人移动端重构经验及思想的一次总结,也是对sandal及sheral UI的一次全方位剖析, 这个UI应该是每个移动端网页都必备的,而且使用场景也是非常的丰富,所以这里我们采用一步步循序渐进的方式去重构。 display: block; width: 14px; height: 8px; border-bottom: 2px solid currentColor; border-left: 2px solid currentColor; transform:

    92780发布于 2018-01-08
  • 来自专栏路遥的专栏

    全新 LeakCanary 2 ! 完全基于 Kotlin 重构升级 !

    Square 公司在今年四月份发布了全新的 2.0 版本,完全使用 Kotlin 进行重构,核心原理并没有太大变化,但是做了一定的性能优化。 你只需要在 build.gradle 文件中添加如下依赖: debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0-alpha-2' 2. RefWatcher.watch() 在看源码之前,我们先来看几个后面会使用到的队列。 总结 通读完源码,LeakCanary 2 还是带来了很多的优化。

    80610发布于 2021-08-31
  • 来自专栏测试开发干货

    接口测试平台代码实现54:首页重构-2

    观察一下目前结构: 我们这次改版相当于完全重构了,所以删除掉body 的css属性和一切子内容 现在主页已经是一片空白了。我们要重新设计了。

    75130编辑于 2022-05-19
  • 来自专栏fixzd

    重构:以Java POI 导出EXCEL为例2

    这一节将会继续重构原有的代码,将一些函数抽象成类,增加成员变量,将传入的参数合成类等等。 好了,这篇博文就围绕着上面四个问题进行重构,大家可以试着按照这几个问题对上面代码进行重构,相信经过自己思考和动手后会对代码的设计有进一步的理解。 重构后 那么现在我们再来看看这个问题,如果我们对导出的样式有变动是不是又要修改ExportExcel类? 如果你有更好的建议在评论处留言哦 ---- 问题2:导出的主方法exportExcel参数有点多了,能不能将一些参数合并成一个类或者去除没用的参数?   地址如下 github地址:https://github.com/rainbowda/utils/tree/master/poi/src/main/java/com/utils/poi/update_2

    1.1K20发布于 2019-02-25
  • 来自专栏京程一灯

    重构-代码整洁之道TypeScript版》第2

    (图片:贡嘎山) 什么是重构 ? 简单理解就是不改变软件可观察行为的前提下,改善其内部结构,以提高理解性和降低修改成本。 ---- 1. 如果不是,我们就用不到使用本项重构,因为可变的值会造成凡人的别名问题。 Immutable.js yarn add immutable -D yarn add redux -D yarn add @types/immutable -D // map1是不可变对象 正用了这条重构规则 import { Map } from 'immutable'; const map1 = Map({ a: 1, b: 2, c: 3 }); const map2 = map1.set('b', 新重构继承体系,往往是将函数和字段在体系中上下移动。完成这些动作后,你很可能发现某个子类并未带来该有的价值,因此需要把超类与子类合并起来。

    92310发布于 2020-08-04
  • 来自专栏趣谈前端

    2年vue项目实战经验汇总

    的项目经验我觉得是最好的成长,也希望给今年想接触vue框架或者想从事vue工作的朋友带来一些经验和思考。 你将收获 vue框架使用注意事项和最佳经验 vue项目配置经验总结 vue组件设计经验总结 vue项目架构与服务化探索 正文 本文不仅仅是总结一些vue使用踩过的一些坑和项目经验,更多的是使用框架(vue 1. vue框架使用注意事项和最佳经验 vue学习最快的方式就是实践,根据官网多写几个例子是掌握vue最快的方式。 接下来笔者就来总结一下在开发vue项目中的一些实践经验。 ', done: true }, { id: 2, text: '... 2. vue项目配置经验总结 在讲完vue项目经验之后,为了让大家能独立负责一个项目,我们还需要知道从0开始搭建项目的步骤,以及通过项目实际情况,自己配置一个符合的项目框架,比如有些公司会采用vue+element

    2K31发布于 2020-02-19
  • 来自专栏学习猿地

    Web前端学习 第2章 网页重构2 常用的html标签

    -- 文档声明 --> 2 <html lang="en"> 3 <head> <! 1

    一级标题标签

    2 <h2>二级标题标签</h2> 3

    三级标题标签

    4

    四级标题标签

    5
    五级标题标签
    6
    六级标题标签 副标题可以使用h2标签。文章中的小标题,我们可以使用h3或h4标签。分别表示三级标题和四级标题。h5和h6这种更低级的标题,用到的情况不是特别多。 1

    前端开发学习心得

    2 3

    本章通过实例向您演示最常用的 HTML 标签,学习 HTML 最好的方式就是边学边做实验。 在实际开发中,我们经常会将超链接放在列表中,代码如下: 1

    1K00发布于 2020-06-12
  • 来自专栏技术之路

    重构学习-重构原则

    什么是重构: 视上下文重构有两个不同的定义,第一个定义是名词形式 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本 重构的另一人用法是动词形式 使用一系列的重构手法 强调一下,重构不会改变软件的可观察行为,也就是说重构之后功能和原来一样。 为什么要重构重构改进软件设计,如果没有重构,程序的设计会逐渐腐败变质。 重构的原动力是:代码设计无法帮助我轻松的添加我所需要的功能,如果用某种设计方式,添加功能会简单的多,这种情况可以用 重构来弥补。重构是一个快速流畅的过程,一旦完成重构,新特性的添加会更快速,更流畅。 如果在修改bug和审查代码时发现不合理的地方也要进行重构,这样是为了更好的阅读和理解代码 何时不重构: 如果发现代码太混乱,重构它不如重写来的简单这种情况下建议重写,不用进行重构。 最后你没有时间进行重构表明你其实早就该进行重构重构与性能: 有时为了让代码更容易理解,会做出一些使程序运行变慢的修改,这是个重要的问题。

    1.4K50发布于 2018-01-31
  • 来自专栏腾讯IVWEB团队的专栏

    【译】通过可选链操作符重构大型代码库的经验教训

    我决定用其来重构Mavo(当然了,还需要提供一个转译版本来适配不支持该特性的浏览器)。 defaultValue 数组校验 if (foo.length > 3) { foo[2] } 现在可改写成: foo?. 等值判断 请小心转换如下代码: if (foo && bar && foo.prop1 === bar.prop2) { /* ... */ } 改为: if (foo?. prop2) { /* ... */ } 在第一种情况下,只有当foo和bar都为真的情况下,整个判断条件才有可能为真。 后记 重构后,Mavo的资源大小轻便了2KB并减少了37行代码。然而,转译版本多了79行代码并加重了9KB大小。 这里是可供参考的相关提交记录。在此次提交中,我尽可能只引入了跟可选链操作符相关的代码。

    1.2K30发布于 2020-07-14
  • 如何用GitHub Copilot重构SQL,避免全表扫描:我的实战经验

    total_price, create_time, status FROM orders WHERE DATE(create_time) = '2023-10-15'AND status IN (1, 2, total_price, create_time, status FROM orders WHERE DATE(create_time) = '2023-10-15'AND status IN (1, 2, Copilot立即给出了几个关键建议:避免在列上使用函数,改为范围查询为create_time和merchant_id创建复合索引考虑使用覆盖索引第二步:重构SQL语句基于Copilot的建议,我重写了查询语句 WHERE create_time >= '2023-10-15 00:00:00' AND create_time < '2023-10-16 00:00:00'AND status IN (1, 2, 2023-10-15 00:00:00' AND create_time < '2023-10-16 00:00:00'AND merchant_id = 12345AND status IN (1, 2,

    45610编辑于 2025-09-15
  • 来自专栏韩曙亮的移动开发专栏

    重构重构概要--六大重构模块

    重构方法介绍: 重构改善既有代码的设计 一 重新组织函数 关于注释 :要尽可能少的使用注释 , 注释越多代码的可读性反而更差,注释可以使用函数名来代替 , 不要管函数名有多长, 即使函数名比函数中的代码还要长也不要紧 能更加明确的表明函数的意义,可以将这个算法替换; 二 在对象之间搬移特性 功能模块归属类:对象设计中, 将一个功能模块放在哪个类中,是最重要的任务之一,谁也不能一开始保证设计的是完全合适的,这就需要“对象之间搬移特性”这个重构方法 搬移函数和搬移字段:这两种重构方法都可以解决大多数的问题,如果两种方法同时使用,先搬移字段,在搬移函数。

    1.1K30编辑于 2023-03-27
  • 来自专栏程序员成长指北

    使用 Vue3 重构 Vue2 项目(长文)

    前言 2020年9月18日,vue3正式版发布了,前几天把文档整体读了一遍,感触很深,可以解决我项目中的一些痛点,于是就决定重构之前那个vue2的开源项目。 本篇文章就记录下重构vue2项目的过程,欢迎各位感兴趣的开发者阅读本文。 image-20201006154454592 项目目录对比 按照上述步骤,即可创建一个vue3的项目,接下来我们将需要重构的vue2项目的目录与上面创建的项目进行下目录对比。 项目重构 接下来,我们来一步步把vue2项目的文件迁移到vue3项目中,修改不合适的地方,让其适配vue3.0。 接下来我会尝试重构vue-native-websocket这个插件,让其支持vue3。 最后放上本文重构好的项目代码地址:chat-system

    3.4K20发布于 2020-11-10
领券