通过自己的项目实际经验,阐述为什么“恶心玩技术”?玩.NET的B/S的教训(四)

简介:
好像是只有Java的项目玩技术碰壁了一样,其实.NET的技术也可以好多可以玩玩的,
光说JAVA的不好,不说.NET的不好,也有些不公平接着就说说我们这个阵营吧。
我这次杀来杭州其实是第二次来杭州了,几年前我来杭州过一次,2004年那次来杭
州的主要目的是为了学习Oracle技术,实在是太想学这个了,正好杭州的这家公司
主要用这个数据库,还用.NET技术还是做电力行业的,正好是我理想的状态。
面试也相对顺利,当时正好做宁波电力局的一个项目,大概有上百万的金额,项目
组只有4-5个人,当时公司真的有一个.NET牛人,虽然是只有高中文化,但是我到
目前为止,在技术上佩服的少数人之一,一般人我是不会佩服的,那点儿三脚猫功
夫,我看不上眼。
我佩服的原因吧,那时候就模仿微软的CRM的用户界面,使用AJAX编程,那时候
也没出来AJAX,或者就算出来了,也不叫这个名字吧,太牛X了,可以用JavaScript
调用后台的C#代码,页面是无递交刷新的,全部用javascript控制。还有ORM,
那时候ORM是干啥的,也不是非常了解,而且还有缓存,而且javascrip还可以控制ORM。
还有更神奇的是,有html的代码生成器,就一个网页,用xsl技术,直接从PowerDesigner
生成代码,不用自己写程序,设计好后代码就直接生成了,而且人家一个网页就可以了。
还有很牛X的网页报表,可以自己定制,可以自己在里面设置公式。tree控件的动态
加载子节点,还有网页全部动态生成XML文件,然后又通过javascript绑定在自己制
作的表格控件上,表格控件又可以排序,又可以过滤,还有神奇的用拼字字母过滤汉字。
说实话这些东西,就是放到今天来让我实现,也未必能实现,我不是神仙啊,啥叫牛人?
自从我认识他后,我自己真的差点儿想改行,也很迷茫我的未来,人家是高中生这么厉害,
赚得也不多,我更能有前途嘛?人家的一个功能,我都难做出来,更何况玩这么多技术了。
项目刚开始,客户想挖这个技术牛人到宁波电力局的IT公司来上班,自己家里又在杭州
又想自己创业,做项目过程中,他天天研究技术,修改Bug,基本上在真正的项目上倒
是没下足功夫,接着到了后期,想自己开公司,基本上心思也没在这个项目了,其他人
又维护不了。
项目还没结束,这个技术大牛就辞职自己去开公司去了,项目还需要继续做,ORM经常
会出错,我们无法修改,折腾来折腾去,缓存有时候也会不稳定,我们经常重新启动IIS,
由于采用了缓存技术,后台数据库数据被修改了,页面上无法正确显示,必须重新启动IIS,
与其他软件无法做接口,修改数据库了,也不会放映出来,数据还是错的,我们都有些绝
望了。
这个项目里,写的JavaScript,一写就是2000多行,程序修改了,这部分无法编译时提
示,只有运行了才知道错误在哪里。
那时候,我有一个老朋友,想拉我去做日本外包,一起开公司什么的,忽悠了我几下,
我也有了辞职的念头,一方面是担心让我来维护这个系统,一方面有开外包公司的诱惑,
我也很快就辞职了,老板很不开心,重罚了我一下。
后来又有一个主力开发人员,也由于种种原因就辞职了,就这么个上百万的软件项目,
就这么破产了,主要问题,就是精力没放在项目上,都放在玩技术上了,这个项目就
算拿到今天来跟大家PK,从技术的角度与客户的页面交互上,也不会输给几个项目的。
我为什么底气很足,也有这些原因,我见过牛人是怎么玩技术,技术可以玩到什么程度等。
为什么反感ORM等,也是由于跟这个项目的失败有些关系的。
那个牛人开公司两年,大概烧了100来万吧,由于种种原因,现在不开公司,
开始当职业自由人了,我们到现在还是好朋友,有来往,我要是有重大项目,
还会找他,解决技术问题。 
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。



本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/451486,如需转载请自行联系原作者
相关文章
|
1天前
|
监控 网络协议 API
.NET WebSocket 技术深入解析,你学会了吗?
【9月更文挑战第4天】WebSocket 作为一种全双工协议,凭借低延迟和高性能特点,成为实时应用的首选技术。.NET 框架提供了强大的 WebSocket 支持,使实时通信变得简单。本文介绍 WebSocket 的基本概念、.NET 中的使用方法及编程模型,并探讨其在实时聊天、监控、在线游戏和协同编辑等场景的应用,同时分享最佳实践,帮助开发者构建高效实时应用。
31 12
|
10天前
|
jenkins 测试技术 持续交付
解锁.NET项目高效秘籍:从理论迷雾到实践巅峰,持续集成与自动化测试如何悄然改变游戏规则?
【8月更文挑战第28天】在软件开发领域,持续集成(CI)与自动化测试已成为提升效率和质量的关键工具。尤其在.NET项目中,二者的结合能显著提高开发速度并保证软件稳定性。本文将从理论到实践,详细介绍CI与自动化测试的重要性,并以ASP.NET Core Web API项目为例,演示如何使用Jenkins和NUnit实现自动化构建与测试。每次代码提交后,Jenkins自动触发构建流程,通过编译和运行NUnit测试确保代码质量。这种方式不仅节省了时间,还能快速发现并解决问题,推动.NET项目开发迈向更高水平。
28 8
|
10天前
|
架构师 开发者
【悬念揭秘】DDD:那片隐藏在软件深处的业务乐土——.NET项目如何借力领域驱动设计,让复杂业务逻辑迎刃而解?
【8月更文挑战第28天】领域驱动设计(DDD)在.NET项目中的应用聚焦于将业务领域知识与软件开发紧密结合,通过构建清晰的领域模型管理复杂业务逻辑。DDD的核心概念包括限界上下文、聚合、实体等,确保模型与实现的统一。在.NET中,通过CQRS和事件源等模式提高系统响应性和可扩展性,实现业务事件驱动的解耦与协作。DDD不仅是一种设计方法,更是要求开发者深入理解业务的文化,助力.NET项目应对复杂挑战,实现业务与技术的融合。
32 6
|
10天前
|
设计模式 存储 前端开发
揭秘.NET架构设计模式:如何构建坚不可摧的系统?掌握这些,让你的项目无懈可击!
【8月更文挑战第28天】在软件开发中,设计模式是解决常见问题的经典方案,助力构建可维护、可扩展的系统。本文探讨了.NET中三种关键架构设计模式:MVC、依赖注入与仓储模式,并提供了示例代码。MVC通过模型、视图和控制器分离关注点;依赖注入则通过外部管理组件依赖提升复用性和可测性;仓储模式则统一数据访问接口,分离数据逻辑与业务逻辑。掌握这些模式有助于开发者优化系统架构,提升软件质量。
27 5
|
10天前
|
Kubernetes 监控 Devops
【独家揭秘】.NET项目中的DevOps实践:从代码提交到生产部署,你不知道的那些事!
【8月更文挑战第28天】.NET 项目中的 DevOps 实践贯穿代码提交到生产部署全流程,涵盖健壮的源代码管理、GitFlow 工作流、持续集成与部署、容器化及监控日志记录。通过 Git、CI/CD 工具、Kubernetes 及日志框架的最佳实践应用,显著提升软件开发效率与质量。本文通过具体示例,助力开发者构建高效可靠的 DevOps 流程,确保项目成功交付。
37 0
|
10天前
|
大数据 开发工具 开发者
从零到英雄:.NET核心技术带你踏上编程之旅,构建首个应用,开启你的数字世界探险!
【8月更文挑战第28天】本文带领读者从零开始,使用强大的.NET平台搭建首个控制台应用。无论你是新手还是希望扩展技能的开发者,都能通过本文逐步掌握.NET的核心技术。从环境搭建到创建项目,再到编写和运行代码,详细步骤助你轻松上手。通过计算两数之和的小项目,你不仅能快速入门,还能为未来开发更复杂的应用奠定基础。希望本文为你的.NET学习之旅开启新篇章!
22 1
|
7天前
|
C# Windows 开发者
超越选择焦虑:深入解析WinForms、WPF与UWP——谁才是打造顶级.NET桌面应用的终极利器?从开发效率到视觉享受,全面解读三大框架优劣,助你精准匹配项目需求,构建完美桌面应用生态系统
【8月更文挑战第31天】.NET框架为开发者提供了多种桌面应用开发选项,包括WinForms、WPF和UWP。WinForms简单易用,适合快速开发基本应用;WPF提供强大的UI设计工具和丰富的视觉体验,支持XAML,易于实现复杂布局;UWP专为Windows 10设计,支持多设备,充分利用现代硬件特性。本文通过示例代码详细介绍这三种框架的特点,帮助读者根据项目需求做出明智选择。以下是各框架的简单示例代码,便于理解其基本用法。
32 0
|
7天前
|
Java Spring 自然语言处理
Spring 框架里竟藏着神秘魔法?国际化与本地化的奇妙之旅等你来揭开谜底!
【8月更文挑战第31天】在软件开发中,国际化(I18N)与本地化(L10N)对于满足不同地区用户需求至关重要。Spring框架提供了强大支持,利用资源文件和`MessageSource`实现多语言文本管理。通过配置日期格式和货币符号,进一步完善本地化功能。合理应用这些特性,可显著提升应用的多地区适应性和用户体验。
16 0
|
7天前
|
Java Spring UED
Spring框架的异常处理秘籍:打造不败之身的应用!
【8月更文挑战第31天】在软件开发中,异常处理对应用的稳定性和健壮性至关重要。Spring框架提供了一套完善的异常处理机制,包括使用`@ExceptionHandler`注解和配置`@ControllerAdvice`。本文将详细介绍这两种方式,并通过示例代码展示其具体应用。`@ExceptionHandler`可用于控制器类中的方法,处理特定异常;而`@ControllerAdvice`则允许定义全局异常处理器,捕获多个控制器中的异常。
18 0
|
13天前
|
C# C++
【Azure Function】在VS Code中创建Function项目遇见 No .NET worker runtimes found
【Azure Function】在VS Code中创建Function项目遇见 No .NET worker runtimes found
下一篇
DDNS