首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS代码超过1000,该怎么维护?

1000JS代码,听起来挺多,但实际上真不算什么,随便一个功能完备、代码健壮JS应用或是模块,很轻松就写出1000多行,看这里,我以前写一个tabel插件,带有CRUD功能、展开、加载、上传、...预览功能东西,当时为了赶时间没怎么细写,只是实现了功能,就达到700多行, ?...所以,现代大型web应用,1000以上JS代码我觉得就是“起步价”而已。那么这种大型应用开发,我们必须对JS可维护性有一个清醒认识。 不要觉得,“我写代码,我还维护不了么”?很有可能。...变量和函数命名,到底用什么方式?是拼音?还是序号?还是怎么样,至少得有个章程。一般来讲变量名用名字,名称嘛;然后函数名用动词,函数是做事呀。...不必担心什么变量名太长会增加体积,现在js都是被压缩过。 还有一个方面就是声明变量时变量类型。同学们应该都知道,js变量声明是没有类型。搞一个变量出来,什么都可以往里放。

2K70

程序员之间距离怎么拉开

程序员之间距离怎么拉开 农历新年假期结束,很多朋友今天开工,这里祝大家开工大吉,新年事业步步高升,更进步一步逼近梦想。 第一篇就从程序员人个精进开始吧。...对待难题 有人遇到难题就想着去怎么解决,而有的人遇到难题就躲开。有人刚刚遇到难题,就把难题抛出去,等着别人来解决,有的人遇到了就自己琢磨,去排查,进而去解决这个问题。...更关键是8小时自由时间,其中包括了时常通勤,吃喝拉撒,端茶倒水,发呆偷懒,阅读上网等。如果能将这八小时来好好利用起来,人与人之前距离,在毕业一两年之内就可以看到比较明显差距。...对待编码外杂事 随着工作年限增长,你会发现你专注写编码时间会越来越少,总有各种各样问题会打断你,使你处在一个不断切换工作场景,工作上下文环境中,很难有持续大片时间来完成一件事。...这些都不是一蹴而就,都需要长期积累、练习才能很好掌握,而我们不应该拒绝每一次成长机会。

66220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    列存储、存储之间关系和比较

    2.1列存储 不同于传统关系型数据库,其数据在表中是按存储,Sybase IQ是通过表中列来存储访问数据。...因此,每一列都可以为优化效率检索进行压缩。相比来讲,基于存储,各个不同域拥有各不相同数据类型,这非常适合于交易进程。...列存储法是将数据按照列存储到数据库中,存储类似; 3.1基于储存 基于存储是将数据组织成多个,这样就能在一个操作中找到所有的列。...由于基列一样, 使用位图向量之间来连接列[6]。此方法在第一次查询时候需要消耗大量内存, 对列进行范围划分以及索引建立。...算法 6~23 处理J 空间最左叶子节点: (1) T1 处理结果包含A 列, 可确定J T1空间串行连接方式。T2 包含B 列时, 可确定A、B 并行, J T2 串行。

    6.6K10

    SQL面试题003-比较

    ,评优规则如下: 学习之星:两个学期分数均为95+,上学期分数相比,持平或者增加 希望之星:两个学期分数90+,但是分数较上学期有所降低 努力之星:两个学期分数均在85至90之间上学期分数相比,持平或者增加...ORDER BY expr [ASC|DESC],... ) 其参数介绍如下: expression LAG() 函数返回 expression 当前行之前值,其值为 offset 其分区或结果集中行数...default_value 如果没有前一,则 LAG() 函数返回 default_value 。例如,如果 offset 为2,则第一返回值为 default_value 。...PARTITION BY 子句 PARTITION BY 子句将结果集中划分 LAG() 为应用函数分区。如果省略 PARTITION BY 子句,LAG() 函数会将整个结果集视为单个分区。...ORDER BY 子句 ORDER BY 子句指定在 LAG() 应用函数之前每个分区中顺序。LAG() 函数可用于计算当前行和上一之间差异。

    8310

    5代码怎么实现HadoopWordCount?

    扯多了,下面赶紧进入正题,看一下,如何使用5代码来实现hadoopwordcount,在Hadoop中如果使用Java写一个wordcount最少也得几十代码,如果通过Hadoop Streaming...方式采用Python,PHP,或C++来写,差不多也得10代码左右。...如果是基于Spark方式来操作HDFS,在采用Scala语言,来写wordcount,5代码也能搞定,但是如果使用spark,基于Javaapi来写,那么就臃肿了,没有几十代码,也是搞不定。...除了spark之外,没有比这更简洁,但这仅仅只是一个作业而已,如果在需求里面,又加入了对结果排序,取topN,这时候在pig里面,还是非常简单,只需新加2代码即可,但是在spark里面,可能就需要数代码了...排名,而且还使用Pig来构建它们web倒排索引等种种扩展功能,我们都可以通过PigUDF方式来实现,它可以将我们业务MapReduce具体实现解耦,而且复用性极强,我们写任何一个工具类,都可以轻而易举通过

    83270

    5000 SQL 源代码,怎么读?

    怎么,今天热焦玛少了点劲儿嘛,感觉?”我走近了小 C。 “L, 面对着满屏 SQL,谁都会提不起精神啊。何况这近 5000 代码,怎么看得过来嘛!...“你这一一个字段,是你自己设置吧,其实不需要那么格式化,反而更简单。你看啊,一个 Insert 被几十个字段隔成了两屏,容易造成思维停顿。两搞定事情,做复杂了。还显得代码量大,失去耐心。”...,怎么更新货库存,更新失败了怎么办?”...“新闻界,会有很多评论家,对重大新闻做二次剖析,比如曹林,《时评写作十讲》作者,擅长对每篇新闻做双面解析。既讲述原新闻作者报道手法,也评价原作者目的动机,最后还补充自己观点,非常有意思。”...我给你推荐几本吧,《编程珠玑》,《CLR Via C#》, 尤其是 SQL 数据库方面,《数据库索引设计优化》,《Oracle 优化日记》,《T-SQL Querying》,《T-SQL 性能优秘籍

    93720

    怎么减少锁对性能影响

    怎么减少锁对性能影响 MySQL 锁是引擎层由引擎实现,并不是所有的引擎都支持锁,比如 MyISAM 引擎不支持锁。...InnoDB 锁针对是数据表中记录锁,比如事务 A 更新一,这时候事务B 也要更新一,则必须等事务 A 操作完成后才能进行更新。...,在 commit 时候释放,在 InnoDB 事务中,锁 是在需要时候才加上,而是要等待事务结束时才释放。...发起死锁检测,主动回滚死锁联某一个事务,其他事务继续执行。将参数 innodb_deadlock_detect 设置为 on 标识开启这个逻辑。 怎么解决热点更新导致性能问题?...另外一个是思路是控制并发度,如果并发能够给控制住,同一同时最多有 10个线程在更新,那么死锁检测成本很低。

    51510

    MySQL实战第七讲 - 锁功过:怎么减少锁对性能影响?

    MySQL 锁是在引擎层由各个引擎自己实现。但并不是所有的引擎都支持锁,比如 MyISAM 引擎就不支持锁。...顾名思义,锁就是针对数据表中行记录锁。这很好理解,比如事务 A 更新了一,而这时候事务 B 也要更新同一,则必须等事务 A 操作完成后才能进行更新。...这就最大程度地减少了事务之间锁等待,提升了并发度。 好了,现在由于你正确设计,影院余额这一锁在一个事务中不会停留很长时间。但是,这并没有完全解决你困扰。...这里我用数据库中锁举个例子,如下图2所示: 这时候,事务 A 在等待事务 B 释放 id=2 锁,而事务 B 在等待事务 A 释放 id=1 锁。...根据上面的分析,我们来讨论一下,怎么解决由这种热点更新导致性能问题呢?问题症结在于,死锁检测要耗费大量 CPU 资源。

    44010

    敏捷是知功夫

    另一边,DevOps运动,精益方法,逆康威行动等也都在如火如荼地进行,倘若我们认真读过敏捷宣言背后十二条原则,也不难发现敏捷与它们之间默契。 如此看来,将敏捷说成是单一方法本身不免过于狭隘。...不过你能够购买工具、经验,但你仍需要大量工作,或许花费数年才能完成。 ” 敏捷是知功夫 王阳明心学中有知行合一认识论,即知行原是两个字,说一个功夫,不可分作两事。...“ 知之真切笃实处便是之明觉精察处便是知。 ” 相信这样一个场景大抵不令人觉得陌生, 在进行用户故事工作量估算时,其中一人称:“我认为这个故事工作量是三个点,因为它涉及到很多结构性调整。”...便有人说,这样我就能在开发人员完成度不达标的时候指着他们鼻子说,“看,你们自己承诺,结果做不完,你们说怎么办!”...若是到了管理层这就脱节了,把一线夹在市场变化和二线控制之间,是做不出敏捷

    24320

    一份好简历之间距离

    每年年初都是企业招聘旺季,对应三四月份绝对跳槽、找工作好时机,业内经常称呼这两个月为金三银四。实力雄厚的人,那个月找工作问题都不大,但是也会尽量挑选个好时机,能有更多选择。...简历上排版也要稍微注意下,比如必要间距可以让阅读者更加清晰阅读,英文、数字中文之间加一个空格,不要有错别字。...注意,尽量挑自己参与程度多,上线,如果你提到项目经验是市场有点名气,积累一定用户,那印象是很不错。...投递简历邮件正文,最好能简单介绍下自己以及自己优点,很多人投递简历就是直接附件上带个简历就完事了,一个小细节也会会留个好印象。...·END· 程序员成长之路 路虽远,则必至 本文原发于 同名微信公众号「程序员成长之路」,回复「1024」你懂得,给个赞呗。

    68540

    mysql 记录是怎么存储

    mysql 记录,最终肯定是存储在磁盘上,也就是肉眼可见文件上,今天我们目标很简单,就是看看它到底是怎么。...猜测下这部分就是每一记录信息吧。 我们插入了七条数据,我发现这些二进制串有一段可以分割成七对,我把他单独拿出来,并且按分割。 ? 我们将第一记录拆解,第一记录表数据是这样。...第二列是 name 列,是 "dibingfa" 这样一个 varchar 类型字符串。 可是后面怎么也对应不上,这是咋回事呢?...记录格式整体结构 总结下,整个一记录格式,叫做 mysql 记录格式,ROW_FORMAT。...不能,因为它不知道表结构是什么样子,也就没法知道两个字段值之间界限在哪里。 所以不难想到,它一定利用了 frm 文件中存储表结构信息。

    1.8K30

    JS例子,要抽出其中逻辑才

    先说下我理解逻辑哈,逻辑一般是把事物运行方式通过一定归纳总结给抽像出来,而抽像出来东西基本上都没有具体对象了,都是特指某一类。...好家伙,你看这网上例子,上下滚动,左右滚动,前后Z坐标的滚动,带字不带字,带图不带图,几十个上百个都不嫌多,都是滚动菜单东西,都是UL带着LI移动坐标,翻来复去玩花样,有意义么?...这就是说,如果在学习时候,过于关注JS例子里面的特定技巧,那对自己学习思考反而是一种阻碍。反过来讲,在学习时候,将它里面的技巧做为一种逻辑层面上共性抽取出来,其实更容易让我们举一反三。...逻辑是有演化过程,逻辑结果应该是规律。而不是记住逻辑。 笨办法它好处就在于,只要沉下心来,看了100个相同例子,那这人就算再怎么笨,他多少也能从中归纳引一些现像级逻辑实现了。...所以,你类似的东西做多,看多了。会有自己逻辑分析,然后用这个逻辑去分析,去判断,该怎么学,怎么做。这样实际上提升了自己开发能力。 但如果没有这种思维,就变成了,接到一个新任务。

    1.2K70

    对一混淆 JS 代码逆向分析过程

    (左右滑动查看代码) 1使代码可读 首先,我们将 HTML 和 JS 代码分离。这里我们保留相关 id 指向。...(i % 2 * j - j + n / delay ^ j) & 1,这段代码可以巧妙地去比较一个数是否为奇偶,它原理其实是数值转换为二进制进行运算返回十进制结果。...这里我们借助一个在线图表生成工具来帮忙绘制函数。 例如,首先我们要绘制 i % 2,它展示为下图所示重复一次函数片段,y 值范围在 0 到 2 之间。...通过 JS XOR (位异或)运算符计算规则,当你位运算两端都为 0 或 1 时,将返回 0 ,两端不同时为 1。同时如果你数是小数的话,将会抛弃小数部分进行计算。...换句话说,每条蓝色对角线代表着我们 Demo 图表中。因为 j 在这 16 里总是大于 1 而小于 2。

    1.1K20

    搞算法我们,不知道这些算法怎么

    1.排序算法 所谓排序,就是使一串记录,按照其中某个或某些关键字大小,递增或递减排列起来操作。排序算法,就是如何使得记录按照要求排列方法。...sort) — O(n) or O(√n),但需要特别的硬件 Pancake sorting— O(n),但需要特别的硬件 stooge sort——O(n^2.7)很漂亮但是很耗时 2.傅立叶变换快速傅立叶变换...到2008年为止,世界上还没有任何可靠攻击RSA算法方式。只要其钥匙长度足够长,用RSA加密信息实际上是不能被解破。...摘要过程能够完成下列特点:不同输入信息绝对不会具有相同指纹:相近输入信息经过摘要之后输出信息具有较大差异,同时计算上很难生产一个给定输入具有相同指纹输入。(即不可逆)。...如果回答是肯定,那么你应该已经见识过这个算法了。 大体上,这个算法使用一种控制回路反馈机制,将期望输出信号和实际输出信号之间错误最小化。

    1K81

    MySQL深入学习第七篇 - 锁功过:怎么减少锁对性能影响?

    MySQL 锁是在引擎层由各个引擎自己实现。但并不是所有的引擎都支持锁,比如 MyISAM 引擎就不支持锁。...InnoDB 是支持,这也是 MyISAM 被 InnoDB 替代重要原因之一。 我们今天就主要来聊聊 InnoDB 锁,以及如何通过减少锁冲突来提升业务并发度。...顾名思义,锁就是针对数据表中行记录锁。这很好理解,比如事务 A 更新了一,而这时候事务 B 也要更新同一,则必须等事务 A 操作完成后才能进行更新。...这就最大程度地减少了事务之间锁等待,提升了并发度。 好了,现在由于你正确设计,影院余额这一锁在一个事务中不会停留很长时间。但是,这并没有完全解决你困扰。...根据上面的分析,我们来讨论一下,怎么解决由这种热点更新导致性能问题呢?问题症结在于,死锁检测要耗费大量 CPU 资源。

    49920

    爬到数据不处理怎么?大话TextRank自动关键词摘要生成

    如果网页A存在到网页B链接,那么有一条从网页A指向网页B有向边。...In(Vi)是存在指向网页i链接网页集合。Out(Vj)是网页j中链接存在链接指向网页集合。|Out(Vj)|是集合中元素个数。...初始时,可以设置每个网页重要性为1。上面公式等号左边计算结果是迭代后网页iPR值,等号右边用到PR值全是迭代前。...在一个窗口中任两个单词对应节点之间存在一个无向无权边。 基于上面构成图,可以计算出每个单词节点重要性。最重要若干单词可以作为关键词。...使用TextRank提取摘要 将每个句子看成图中一个节点,若两个句子之间有相似性,认为对应两个节点之间有一个无向有权边,权值是相似度。

    69610

    一个只有99代码JS流程框架(二)

    导语 前面写了一篇文章,叫《一个只有99代码JS流程框架》,虽然该框架基本已经能实现一个流程正常逻辑流转,但是在分模块应用下还是缺少一定能力,无法将一个页面中不同模块很好连接在一起,于是对之前框架进行了升级...在这个升级后框架里(当然代码已经不止99了,不要在乎标题),每个步骤不但可以是一个function,还可以引用另一个流程,这个被引用流程就叫子流程。...而子流程父流程交互,我们可以在代码中通过 this.parent 来实现。...在子流程每一步中都可以获取 this.parent,得到是当前子流程对应步骤,这个步骤跟其他步骤一样也具有同样API(详见上一篇文章《一个只有99代码JS流程框架》对步骤API介绍)。...另外,需要说明一点:这次升级,并没有对流程步骤API做改变,仅仅是引入了子流程使用方式,其实就是定义子流程,然后引用子流程,接着就是父流程和子流程之间交互。

    1.7K100
    领券