美文网首页
来到传统行业做程序员,从准备提桶跑路到引领技术风潮?

来到传统行业做程序员,从准备提桶跑路到引领技术风潮?

作者: Java老白 | 来源:发表于2022-02-21 17:34 被阅读0次

制造业央企,七年老程序员,精通JAVA “HELLO WORLD”、SHELL脚本 ECHO “HELLO WORLD”的编写,拥有1分钟装完DOCKER,五分钟装完K8S集群,等“牛逼技能”。

混沌初开,乾坤始奠

纯纯内外网隔离,只能通过特定U盘拷贝,不能用npm,maven,docker仓库,听到这里是不是你已经在准备提桶跑路。开始开发部署,Centos7安装一个vim找半小时的依赖,java升级个jar包版本花半天时间,npm工程只要有更新就直接拷贝所有内容(包括node_moudle)到内网开发,到这里我辞职报告都打好了。

为有牺牲多壮志,敢教日月换新天

心态转变

从“既然无法改变,就设法去享受,效率差就差,多摸摸鱼他不好吗?”到“我也该有做一点事情的必要了”。

计划实施

说干就干,组织众多开发同仁,慷慨激昂一番,大家不出意外,都支持你,这是为全体研发人员谋福利。

  1. 写出计划,实施方案,技术设计,我们有了仓库服务器;

  2. 部署nexus,开通端口,开通maven、npm、yum、docker等仓库,我们有了仓库服务;

  3. 在外网,下载全量Centos7.9的rpm包,梳理经常使用到的maven开发依赖、npm依赖并下载,转储docker常用镜像;

  4. 在内网,使用安全u盘拷贝,执行批量上传脚本

天不生我程序员,开发万古如长夜

全部搞定,公司研发人员终于可以在内网有限度的使用这些仓库了,大家都说你活真好!!!

主要脚本及技术

仓库服务

主要采用nexus,一个服务就支持了N多仓库,真好。

maven依赖转移

  • 拷贝外网开发机器的maven缓存

  • 在相应目录执行

    <pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="java" cid="n724" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit;">find . -type f -not -path './import.sh' -not -path '/.' -not -path '/^archetype-catalog.xml' -not -path '/^maven-metadata-local.xml' -not -path '/^maven-metadata-deployment*.xml' | sed "s|^./||" | xargs -I '{}' curl -u "admin:123" -X PUT -v -T {} "http://xxxxxxx.com/repository/maven-releases/"/{} ;</pre>

  • 配置自己的settings.xml,即可使用

npm依赖转移

  • 在外网下载前端依赖

  • <pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="java" cid="n733" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 0px; width: inherit;">catpackage-lock.json| sed` `'s/,/\n/g'` `|grep"resolved"| sed` `'s/\"resolved\": \"/curl -O -L /g'` `|sed's/"/ /g'| ``sed's/?.*//'| sh</pre>

  • 在内网上传依赖到仓库

    <pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="java" cid="n737" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit;">#设置仓库
    npm config set registry http://xxxxx.com/repository/npm-xxgs/

    登录

    npm login

    创建上传脚本

    touch batch-npm.sh

    输入以下内容

    find ./ -name "*.tgz" | while read i
    do
    echo {i##*/} echo{i}
    npm publish -registry http://xxxxx.com/repository/npm-xxgs/ ${i} --force-registry
    done

    运行脚本上传

    ./batch-npm.sh</pre>

docker镜像

比较简单,保存镜像,载入镜像基本就可以完成,此处不多说

总结

在这个过程中,感觉最麻烦的是npm的处理,经历过使用yarn下载,已经写好的工具包下载,但都有一些版本号不一致的问题,最后使用自制脚本下载,才保证了版本号的一致性。

春节过后,大家都会有一个新的开始。每个人都想要拿更高的工资,想去更大的平台,Java作为编程界第一大语言,使用人数最多也最成熟,冲刺大厂相对来说竞争压力也大。

放假在家期间花了很长时间去搜罗整理Java核心技术文,整理了一些文档分享给老铁们。无论是为开年跳槽做准备还是学习蓄力的,都可以看看。

需要本文中PDF的点击这里,就能免费领取了!

(整理资料不易,大家耐心看完~)

核心知识点

这部分可以说是非常关键且基础的,涉及JVM,Mysql,并发,Spring,Mybatis,Redis,MQ,Zookeeper,Netty,Dubbo,Spring Boot,Spring Cloud,数据结构与算法,设计模式,网络与操作系统等相关技术领域的知识点。

1.Java并发编程(涉及Java多线程的工作原理及应用、Java线程池的工作原理及应用,以及锁、进程调度算法等内容)

img

2.分布式缓存的原理及应用 (涉及分布式缓存介绍、Ehcache原理及应用、Redis原理及应用、分布式缓存设计的核心问题等内容)

img

3.数据结构(涉及链表、二叉排序树和队列及其Java实现等内容)

img

4.Java并发编程

img

5.Java中的常用算法(涉及二分查找算法、冒泡排序算法、插入排序算法、快速排序算法,以及希尔排序算法等内容)

img

6.设计模式 (涉及常见的23种经典设计模式)

img

7.网络与负载均衡原理 (涉及TCP/IP、HTTP、常用负载均衡算法和LVS原理等内容)

img

8.JVM原理 (涉及JVM运行机制、JVM内存模型、常用垃圾回收算法和JVM类加载机制等内容)

img

9.数据库及分布式事务(数据库的基本概念及原则、数据库的并发操作和锁、数据库分布式事务)

img

拥有这套面试宝典,相信大家在今年的金三银四面试中,必定可以脱颖而出,冲进大厂。本次是作为福利免费分享,需要本文中PDF的点击这里,就能免费领取了!

相关文章

网友评论

      本文标题:来到传统行业做程序员,从准备提桶跑路到引领技术风潮?

      本文链接:https://www.haomeiwen.com/subject/cvyilrtx.html