年底了,又是一年过去了.今年感觉收获颇多..做web开发将近4年时光,期间没有做过任何完整的winApp,一直从事者网络开发.从最初的留言本--新闻--企业网站--论坛--聊天室--大型门户网站--大流量下载网站--网站系统优化,一路走来,不仅仅是技术上的进步,更重要的是思想上的成熟..
今天之所以发这样一篇文章,是希望和大家探讨开发,探讨如何最大的节约开发时间,避免走弯路..给初入开发门径的朋友一些建议和忠告.
性能:
我想一个网站,抛开网站本身的定位和功能,给用户的第一印象肯定是速度!!勿庸置疑的说,速度是决定你网站成长的最关键因素之一,无论你内容多新,内容多好,这个是策划和拓展的事情,不是我们开发人员的事情,我们的目标是在现有的条件下如何最大化的使你的程序快速运行..而这些优化,对于中小公司来说,也是最容易忽略的..我想每个开发人员都希望自己的程序运行如飞,得到用户的赞扬,这也是证明一个webApp开发高手和新人的区别之一..
优化也分为多种:常见的分为程序优化和数据库优化,数据库优化大多数从SP入手,.NET程序也可以适当的配合,比如一条SQL语句能和其他语句合并的,就合并后,一次请求至数据库..不要分开请求..增加无谓的请求次数..给你的表增加索引..我很赞成为了速度和效率,适当的给表中增加沉淀字段,比如,你一个用户表,一个企业表,每个企业表下对应多个用户,当你调用一个用户的时候,需要名字,企业名,这个时候大多数的新人朋友都是join多表查询,只是牵涉到其他表中的一,两个字段,这个时候我建议你在用户表中增加你所需的企业名和ID..这样的沉淀字段,大多数的数据库管理员也是可以接收的..程序的优化又分多种,从页面,从Cache,从结构,这些优化方法,无从核对,无法凭想象来实现,只能通过个人经验,网络,测试,部分优化书中得到,最经典的话就是:实践是检验真理的唯一方法!!尤其用在优化上的时候!!!!
安全:
有了性能和好的策划,我相信你webSite一定会访问激增,看着一天比一天大的访问量,自己心中也会有极大的满足感!!但是此时,难免肯定会有对手恶意攻击,或者有人捣乱,这个是网站成长过程中都会遇到的..这个也是必然的结果..每个人心中都难免有那么一点点的破坏欲..安全在这个时候就显得特别重要..试想着网站的数据偶尔遭受一次失窃,丢失,呵呵,每天提心吊胆..什么感觉??
安全首先从程序入手,最基本的就是先防止SQL注入,现在互联网上80%以上的黑客,都是新人,玩的都是工具,一个在小榕论坛泡几天,拿着极光工具,随便扫扫,呵呵,发现漏洞,点点按钮..寻找些SQL漏洞等等,这些新人到处都是,对付他们的最好办法也很简单,注意代码中的拼接,SQL语句的写法.对输入的类型进行检查,长度限制,过滤特殊字符..对于get传值,自己编写加密/解密函数,进行加密传输..以上做法如果实施,基本上这些小黑只能换地方了..其他地方也需要特别注意,文件上传,要做多次鉴定,禁止上传危险文件,最好的办法是获取ContentType进行必要的验证.后台管理地址要注意保护,避免被人发现后,频频攻击...接下来是服务器方面的安全防范,这个安全问题大多了..我就不在这里赘述了,有兴趣的朋友可以看看<黑客大曝光--网络安全的机密与解决方案>,很不错的安全书籍,另外加密解密可以去看雪论坛找些资料,最好买本书,段刚<加密解密>一书.
集成:
网站大了之后,管理和维护就是最大的问题,而现在的OO思想就最大限度的发挥了作用,OO的思想就是万事万物皆对象,你的栏目1是对象,你的栏目2是对象,一切的一切都是对象,网站是做为平台,将这些对象或者是产品,或者是插件方式集成进去..说这些虽然是空话,但是真正当你按着这个心态去做的时候,你会发现,你很轻松..
其实网站做大之后,很多栏目都是项目化,其中一个团队开发某栏目,某栏目又分为N个人开发设计,期间要考虑到整合,关系,互动,调用,甚至是某些团队中的东西要产品化,不仅要满足网站的需求,更是做为一个产品来开发..兼顾到维护,易用性,个性化的方方面面功能..另外公司文档的规范化,是做为集成开发的基本,也是每个团队必须要紧抓,狠抓的重点,项目需求,调研,可行性分析,项目功能表,开发进度表,这些东西都是随着项目的开发进度而需要完善,加强的..
实现网站功能的插件化,嵌入式,我感觉会是未来将来web发展的主方向,以后的网站,可能一个栏目分出来就是一个站点,A站的栏目可以完全的嵌入到B站中,这个也是未来web发展的必然..就好像OO的思想在将来,也可能是现在将会被其他思想所代替一样..至于这个时间要多久,还需要我们拭目以待.
如果觉得上面的话听起来不爽,就当是空泛之谈吧,呵呵..新的一年即将来临,在这里祝福所有的朋友:
新年新气象,技术竿头更进一步,身体健康,早日喜结良缘,打破程序员10年独身的神话!!!!!
性能,安全,集成才是web之道
相关文章:

站立会议第四天
今天是我们冲刺周期第四天,今天的站立会议主要有以下内容: 1.完成录入菜的数量函数的编写(gersort) 部分代码如下: void Cmenu::getsort(int SORT) // 录入所点菜的数量 { sortSORT; } cout<<"…

iOS 后台挂起的一些坑
特别说明:后台状态:当前app如果不是作为屏幕中的第一层,呈现显示给用户,那么此时app就是后台状态。锁屏(包括:当前应用下锁屏、其他应用下锁屏、桌面锁屏) 用户在使用其他应用app2,…

jQuery绑定事件的三种常见方式(bind、one、【change、click、keydown、hover】)
一、bind(type,[data],fn):为每个匹配元素的特定事件绑定对应的事件处理函数。 也可以同时给一个元素绑定多个事件,我们来看一下例子: <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>…
Visual Web Development 2005开发ASP.NET使用小技巧
(1)改变端口 VWD2005自带有一个内置的web服务器,当我们使用它进行开发ASP.NET时,可以发现它默认使用的端口是动态改变的,要想使用固定端口,步骤如下1)在“解决方案资源管理器”里选择你的应用…

java 日志框架的选择Log4j-SLF4j-Logback
Log4j->SLF4j->Logback是同一个人开发的 import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner;R…

[WCF] - Odata Service 访问失败,查看具体错误信息的方法
Issue 解决 为 Data Service 配置属性如下:[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults true)]参考 http://salvoz.com/blog/2011/02/18/where-are-the-server-logs/转载于:https://www.cnblogs.com/jinzesudawei/p/7087893.html

Tomcat软件的目录结构、作用
要了解Tomcat的目录结构,首先要知道什么是Tomcat? Tomcat是一个Apache软件基金会Jakarta项目中的核心项目;是一个免费的开放源代码的轻量级Web应用服务器;运行时占用资源小,支持负载均衡与邮件服务等开发应用系统常用功…

这两者需要映射到相同的服务器,从而无法打开项目的解决方法:
1、首先选择文件夹,右键选择共享与安全中的常规,确保其属性是只读,如果还是不能打开项目。则进入第二步。2、到“C:\Documents and Settings\你的用户名\VSWebCache\计算机名\”中, 删除与该项目同名的文件夹。如果还是不行,则进入…

python学习07
Python_learn_day07 1.模块 2.正则表达式 转义字符:反斜杠(\),可以把元字符转义为普通字符。 注意:经常用到的正则表达式最好将其编译,因为编译后的文件运行更快。 利用re中的split()方法拆分复杂的字符串&…

一些零碎知识(域名、DNS、浏览器、动态静态页面、web应用系统工作原理)
域名: http://localhost:8080/practice(胡写的,用于说明问题) http:表明当前请求是http协议,所有的Java Web应用程序都是基于HTTP协议,HTTP全称HyperText Transfer Protocol,意思是…

mybatis简化实现思路
要想实现一个简化的mybatis,主要1.读jdbc配置和mapper.xml 2.jdbc转载于:https://www.cnblogs.com/ljjnbpy/p/9981219.html

76种语言:我爱你
法语:Je taime,Je tadore 德语:Ich liebe Dich 希腊语:Sagapo 犹太语:Ani ohev otach(male or famale),Ani ohevet otcha (male orfamale) 匈牙利:Szeretlek 爱尔兰:taim ingra leat 爱沙尼亚:M…

搜索引擎的实现原理
搜索引擎的实现原理,可以看作四步:从互联网上抓取网页→建立索引数据库→在索引数据库中搜索→对搜索结果进行处理和排序。 从互联网上抓取网页. 利用能够从互联网上自动收集网页的网络蜘蛛程序,自动访问互联网,并沿着任何网页中的…

精通JavaScript--07设计模式:行为型
在本章,我们将继续学习设计模式,着重了解行为型设计模式。我们在第5章所学的创建型设计模式侧重于对象的创建,在第6章所学的结构型设计模式侧重于对象结构,而本章介绍的行为型设计模式则侧重于辅助实现代码库中的多个对象之间的通…

DataX 安装和使用
阿里云介绍: 1. 下载安装包。作为阿里主要的数据传输工具Datax,阿里已经完全开源到github上面了。下载地址(https://github.com/alibaba/DataX)。 2. 安装环境: JDK(1.6以上,推荐1.6)Python(推荐Python2.6.…

关于Adodb.Stream的使用说明
组件:"Adodb.Stream"有下列方法:Cancel 方法 使用方法如下 Object.Cancel 说明:取消执行挂起的异步 Execute 或 Open 方法的调用。Close 方法 使用方法如下 Object.Close :关闭对像CopyTo 方法…

JSP的执行过程(详解)
要了解JSP的执行过程,首要要搞懂什么是JSP,JSP的全称是Java Server Pages,里面包含html标签、css样式、JavaScript脚本和Java代码。 下面我们来说说JSP的执行过程: JSP执行过程: 当用户通过浏览器访问Tomcat上的JSP页面时&#…

VoIP败家子的游戏
现在VoIP比较火,甚至都引起了电信运营商的强烈关注。VoIP替代长途好象是板上钉钉的事情。实际情况是否如此呢?当然不一定是这样的。VoIP是将企业语音电话业务与网络数据业务合二为一,使之能够在一个网络上实现低成本的IP语音和IP数据服务。其…

K8s简单yaml文件运行例子deployment
kubectl run 创建并运行一个或多个容器镜像。创建一个deployment 或job 来管理容器。kubectl run 语法: $ run NAME --imageimage [--env"keyvalue"] [--portport] [--replicasreplicas] [--dry-runbool] [--overridesinline-json] [--command] -- [COMMA…

codeforces round 421 div2 补题 CF 820 A-E
A Mister B and Book Reading O(n)暴力即可 #include<bits/stdc.h> using namespace std; typedef long long int LL; const LL N1,M1,MOD1;int main() {//freopen("t.txt","r",stdin);int c,v0,v1,a,l;scanf("%d%d%d%d%d",&c,&…

JSP中的重定向和请求转发以及它们的区别
我们先硬着头皮看一下重定向的定义: 重定向(Redirect): 客户端浏览器向Web应用服务器端发送一个请求,Web服务器端使用HttpServletResponse的sendRedirect()方法将结果(结果中头信息内HTTP状态码为302&…

想你,是一种美丽
想你,是一种美丽 想你 不论何时何地想你 是一腔热血的唠叨想你 是一地相思泪的燃烧想你 是一弯明月的宣誓想你 是一抹诗情的聚焦 每个路口都有为你守侯的目光每个黄昏都有为你焦急的心你的名字便是祈祷的圣经你的身影便是我梦中永远的天使 即…

通用数据库连接执行类(SQL)
usingSystem;usingSystem.Data;usingSystem.Data.SqlClient;namespacePublic{///<summary>/// CustomADO 数据连接执行类。///</summary>public class CustomADO{#region定义或创建类私有变量或对象private string _connstr; //连接字符串存储变量private …

Alpha冲刺 - (5/10)
Part.1 开篇 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Part.2 成员汇报 组员2 黄志铭 过去两天完成了哪些任务学习了逻辑层js与界面的数据传送完成共享编辑的界面以及相关接口接下来的计划1.对之前的界面完成逻…

session对象运行机制
当你看到 “会话” 这个词的时候,你会怎么理解呢?是交流、对话的意思吗?那毫无疑问绝对是的啦,只不过那是传统意义上的,或者说是日常生活中的意思,在计算机科学领域,它的意思就要引申一些了。在…

git查看某个文件的提交历史
git log --prettyoneline 文件名接下来使用git show显示具体的某次的改动。git show <git提交版本号> <文件名>转载于:https://www.cnblogs.com/ppsunlight/p/7095612.html

省市县三级级联(模块化开发)
不废话,上代码: 先看一下项目列表: tool包里的代码: 请看:tool包 vo.Area类: package com.jd.vo;public class Area {private String id;private String name;private String code;private String pa…
IOS - 设置与帮助界面
设置与帮助 改动头像, 改动password, 移动客服, 帮助, 声明, 关于我们. 代码 // // IndexSetting600ViewController.h // SymptomChecker // // Created by wang on 2015-7-21. // //#import "CYTableViewController.h"interface IndexSetting600ViewController …

CentOS虚拟机和物理机共享文件夹实现
CentOS虚拟机和物理机共享文件夹实现过程。 一、 安装VMware Tools VMwareTools的安装脚本是要使用到perl的,而CentOS 6自身不带perl,所以需要自己安装。可以自己下载源代码编译,也可以直接用yum来安装。 yum install perl 2、虚拟机工具栏-…

[讨论]你的女朋友值多少钱?
你的女朋友值多少钱?一个简单的测试可能会告诉我们很多的东西。 女主持人气势咄咄的问一个男嘉宾,你为什么那么在乎钱,男嘉宾说:“钱能买到一切!” 现场的观众哗然了。 男嘉宾微笑的说:“我们做个测试吧。” 一个很简单…