@程序员,你们还在用网上乱找的方法导入导出Excel么,我们给你造了个轮子!!!!!
程序员的显著特点
有一天跟一位同事跟我闲聊,讨论起过去若干年软件行业的感受,他问了个问题:你觉得一个好的软件工程师最显著的特点是什么?
我想了一会,说:大概是坐得住吧。
某种意义上来说,在互联网技术飞速发展的今天,信息的洪流总是无声无息间把我们掩埋,一不小心,可能就感觉自己似乎已经out了。
当然,信息有良种,也有莠子,有的信息能够让我们收获颇多,但是大部分信息其实都是八卦信息,与大家的关系并不大。
然而我们依然容易沉迷于八卦信息之中,总觉得能够收获什么。其实往往就是虚度光阴。
哪怕是那些专注于技术领域的大群们,也难免在某段时间过后,变成一个个水群,然后兴趣平平,不了了之。
造轮子,优秀开发者的共同之选
技术群里经常讨论的话题大概是某些开源轮子。尤其是.net的群,有时候遇到问题,就会有人说,要是造个某某轮子就好了,同样的东西隔壁java就有;或者是某某轮子出了个bug,然后集体声讨会开始,说作者连这么简单的问题都没考虑到;或者像ngnix卖了大价钱了,有人说,这东西我很多年前就有这个想法,要是当时就做了,那这个发财的一定就是我了。
然后长沙互联网社区的胡子哥有一句口头禅特别有用:你别想这想那,想那么多什么用都没有,你倒是干啊,别老想干失败了啊,万一干成功了呢?
所以在这个时代冷静的思考、时刻保持学习的态度,能够坐得住,大概是成为专业开发者的第一步。
而成为专业开发者之后,通过一个开源项目来练手,一定是一个非常不错的选择,在gayhub之上,许多不同技术类型的开发者都借助平台开创了自己的品牌,他们做了一个个优秀的开源组件,既成就了自己的价值,更是帮助了大量对组件有需求的开发者。前有vue尤雨溪,后有涛思数据陶老师,他们就是中国开发者圈子中的英雄伟人。
好吧,要撸一个vue.js是真的不容易,要做一个TEngine更是难上加难,那能不能挑个看起来简单的小轮子,例如excel的导入导出吧。
额,看起来很简单的东西,哪里有那么简单呢?
造轮子容易么?
造一个轮子,开头容易做好难。首先你得开始干,其次你得把事情干好,再次,你还得坚持。
然后你得做个每一个单元测试,还得考虑各种极限情况,现在开发者很挑剔啦,不仅要求功能齐全,还得性能优异(虽然大部分客户不一定用的到),还得考虑多种数据格式,你还得经常解决issues上大家提出的反馈并及时的修复bug,好吧,能够把这一趟水梭完已经很不容易了。然后你把你的轮子推送到了gayhub上,难免会在一些群里做一些推广。
于是你会遇到键盘侠们,他们都在吐槽说你干的这个东西:这么简单的东西,一个实习生就会干了。。当然,要让他们来干,除了从网上抄现成的代码,要自己撸,估计那几个单词怎么拼,都要花百度一下,正儿八经要把轮子造出来,估计得等十年也憋不出来了。。
有一位老师说得很有道理:中国不缺喷子,不缺那些所谓有想法的,缺的是能够把想法转化成显现实的人。
Magicodes.IE是什么,是怎么来的?
例如,长沙.NET社区的重要参与者李文强大佬和他的团队,就是这样一个善于把想法转换成现实的人。实际上这几个月来他们特别忙,基本上天天得特别晚才能回去,尤其是作为公司创始人的李文强,更是几乎天天都会加班到特别晚。
他说他大概是一个想法特别多的人,经常会碰出许多想法,但是由于时间实在是有限,许多开源组件都开始设计得挺不错,但由于开局太大、定制能力要求太高等众多原因逐渐的无法维护,最终不了了之。
这次他改变了想法,先设计一个比较易于拆卸的小轮子,实现一些基本功能,然后经过一波测试,获得了非常不错的反响,并获得了社区的认同,然后这个轮子也有幸得以成为NCC中的一个小组件。
Magicodes.IE:导入导出通用库,通过导入导出DTO模型来控制导入和导出,支持Excel、Word、Pdf和Html。
这确实是个非常灵巧的小轮子,虽然看起来很简单,但是他的功能还是很实用的,我相信大部分企业级应用开发者都值得拥有。
赶紧抛弃你们从网上下载的那些不靠谱的代码,把你们的Excel导入功能合并到这个小轮子上来吧!
下载地址:https://github.com/dotnetcore/Magicodes.IE
记住这个名字Magicodes.IE,Fork 一波,然后Star一波。。人生精彩从这里开始!。。
能看到这里的都是最优秀的程序员,升职加薪就是你了
@程序员,你们还在用网上乱找的方法导入导出Excel么,我们给你造了个轮子!!!!!的更多相关文章
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
C#中缓存的使用 缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可: <%@ Outp ...
- jxl导入/导出excel(网上的案例)
jxl导入/导出excel 1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOExc ...
- 程序员新人怎样在复杂代码中找 bug?
分享下我的debug的经验 1. 优先解决那些可重现的,可重现的bug特别好找,反复调试测试就好了,先把好解决的干掉,这样最节约时间. 2. 对于某些bug没有头绪或者现象古怪不知道从哪里下手,找有经 ...
- (转)程序员新人怎样在复杂代码中找 bug?
我曾经做了两年大型软件的维护工作,那个项目有10多年了,大约3000万行以上的代码,参与过开发的有数千人,代码checkout出来有大约5个GB,而且bug特别多,open的有上千,即使最高优先级的s ...
- 黑马程序员——JAVA基础之抽象和接口 , 模版方法设计模式
------- android培训.java培训.期待与您交流! ---------- 抽象定义: 抽象就是从多个事物中将共性的,本质的内容抽取出来. 例如:狼 ...
- 程序员微机课系列—我的nodejs多版本管理方法
nodejs的多版本配置对于我来说一直都是一个较为头疼的事情.本人的开发工作会涉及electron以及前端,对于工作中使用的npm包(点名node-sqlite3和node-sass)在某些情况下,会 ...
- 你好,我是梁桐铭,.NET程序员,啰嗦下过去几年来的感悟吧
序 所有的文章都会有序言,我的当然也不例外. 因为职业和工作的关系,很少有时间陪伴家人,感谢妻子10年以来的容忍和支持,感谢女儿给我生活带来的乐趣. 希望孩子长大了之后能热爱编程(可以不用以它谋生). ...
- 给IT新男的15点建议:苦逼程序员的辛酸反省与总结
很多人表面上看着老实巴交的,实际上内心比谁都好强.自负.虚荣.甚至阴险.工作中见的多了,也就习惯了. 有一些人,什么事都写在脸上,表面上经常得罪人,甚至让人讨厌.但是他们所表现的又未必不是真性情. 我 ...
- 程序员谈学习:我为什么要学习Linux?
http://kb.cnblogs.com/page/196876/ 好长时间没好好写点东西了,前段时间由于项目的需要出差了一个多月,期间各种加班,每天晚上加班到十点,回到宾馆实现是没什么精力再写博客 ...
随机推荐
- SDUT-1479_数据结构实验之栈与队列九:行编辑器
数据结构实验之栈与队列九:行编辑器 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个简单的行编辑程序的功能是:接受用 ...
- 阿里云DataV专业版发布,为可视化创造更多可能!
阿里云数据可视化应用工具DataV正式推出专业版,该版本为可视化领域专业团队和从业者量身打造,定位数据可视分析大屏搭建场景,让使用者可以轻松hold住复杂交互设计和实时数据交互查询需求. 什么是Dat ...
- iptables 防止DoS攻击
SYN洪水是攻击者发送海量的SYN请求到目标服务器上的一种DoS攻击方法,下面的脚本用于预防轻量级的DoS攻击:ipt-tcp.sh: iptables -N syn-flood (如果您的防火墙默认 ...
- bnu 52037 Escape from Ayutthaya
Escape from Ayutthaya Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on CodeFo ...
- Project Euler Problem 18-Maximum path sum I & 67-Maximum path sum II
基础的动态规划...数塔取数问题. 状态转移方程: dp[i][j] = num[i][j] + max(dp[i+1][j],dp[i+1][j+1]);
- Element-ui学习笔记2
1.Button按钮 <el-button> type属性可以修改按钮主题 type='text'时为文字按钮 plain,round,circle可以修改按钮样式,plain为朴素按钮, ...
- stl_tree.h/insert_unique()
// 安插新值:節點鍵值不允許重複,若重複則安插無效. // 注意,傳回值是個pair,第一元素是個 RB-tree 迭代器,指向新增節點, // 第二元素表示安插成功與否. template < ...
- springboot2动态数据源的绑定
由于springboot2更新了绑定参数的api,部分springboot1用于绑定的工具类如RelaxedPropertyResolver已经无法在新版本中使用.本文实现参考了https://blo ...
- 智课雅思词汇---九、mon是什么意思
智课雅思词汇---九.mon是什么意思 一.总结 一句话总结:词根:mon(min) = to warn, to advise, to remind 1.mit是什么意思? 词根:-mitt-, -m ...
- [转载] linux find 命令
转载自 http://www.jb51.net/os/RedHat/1307.html Linux下find命令在目录结构中搜索文件,并执行指定的操作. Linux下find命令提供了相当多的查找条件 ...