|
|
Perl Web 开发技术 |
|
|
|
| 原价:
¥35.00(以下报价瞬息万变,建议您点击全部站点比对) | | |通过以下方式购买,或许更便宜: |
|
|
| |
|
|
|
|
我要购书网的承诺:本网上购书中心所出售的"Perl Web 开发技术"图书保证正版,您在本购书中心享有收到图书七天内无条件退货!收到商品15日之内换货的待遇!
|
| |
退货规定:从本网上书店所购买的图书如有质量问题(字迹模糊/缺页/倒装/开线/开胶/折页/封皮破损/缺少随书赠品),可在收到商品7日之内可退货 |
| |
换货规定:从本购书中心所购买"Perl Web 开发技术"图书如有质量问题(字迹模糊/缺页/倒装/开线/开胶/折页/封皮破损/缺少随书赠品),可在收到商品15日之内换货
|
|
| |
| 本书重点介绍了用Perl进行Web开发时可能遇到的问题、现在的解决方案和未来的发展趋势。本书主要内容分为三个部分,第一部分具体讨论了Web开发时可能遇到的、应该注意但却可能被忽视的一些问题,这些问题在用Perl语言或其他语言进行Web开发时普遍存在;第二部分介绍了用Perl开发Web应用程序的优势,并提出了对问题的解决方案,包括基本原理、实现工具和存在的优缺点等,并具体针对Web应用程序的性能问题提出不同的解决方案,这些方案都充分体现了利用Perl的优势;第三部分介绍了面向未来的解决方案,具体介绍了Perl的未来、Web开发的发展趋势和一些示例。本书编排独特,阅读方便,针对性极强,是一本不可多得的好书。本书是用Perl进行Web程序设计和提高Web应用程序性能的很好的参考资料。对利用其他语言进行Web程序设计和开发的技术和管理人员也有一定的指导作用。 |
| |
| 第一部分 存在的问题 第1章 不可预期的网络流量问题 1 1.1 过时的网站 1 1.1.1 macadamia的故事 1 1.1.2 评估宕机的费用 4 1.1.3 提前准备的费用 4 1.2 突然的流量增加 4 1.2.1 名声和Slashdot效应 5 1.2.2 其他名声 5 1.3 累积增加 6 1.3.1 网络效应 6 1.3.2 网络日志指示器 6 1.3.3 估计满载的时间 7 1.4 Web扩展和新设备 8 1.4.1 Web规模每8个月翻一番 8 1.4.2 WML和慢速连接 8 1.4.3 XML和自动化请求 9 1.5 小结 10 第2章 不理想的预算和计划 11 2.1 决策慢而需求急 11 2.1.1 前进的重要性 12 2.1.2 评估新技术 12 2.1.3 处理不可预期的决定 13 2.2 预算少而目标大 14 2.2.1 为核心目标让出空间 14 2.2.2 确定预期目标 15 2.2.3 直到演示 15 2.3 无用的帮助 16 2.3.1 处理遗留系统 16 2.3.2 委托Web开发 16 2.3.3 让观众参与 17 2.4 小结 17 第3章 网站设计和应用程序设计 18 3.1 图像设计者的需求 18 3.1.1 一致的视觉和感觉 19 3.1.2 循环HTML设计 19 3.2 程序员的需求 20 3.2.1 干净的代码 21 3.2.2 模块化 22 3.2.3 未来的阻力 23 3.3 所有人的需求 23 3.3.1 短开发周期 24 3.3.2 清晰的劳动分工 24 3.3.3 其他因素 25 3.4 小结 25 第4章 原型和实际网站 26 4.1 Perl快速原型设计 26 4.1.1 Perl的公共任务模块 27 4.1.2 大量可用的Perl CGI 28 4.1.3 其他实现方法 28 4.2 Perl CGI的性能 29 4.2.1 一次性任务 29 4.2.2 Perl进程的内存痕迹 30 4.2.3 编译的费用 30 4.3 小结 31 第5章 基于体系结构的性能损失 32 5.1 CGI的本性 32 5.1.1 每个请求一个进程 33 5.1.2 与GIMP或Word比较 34 5.2 数据库的本性 34 5.2.1 太多的用户 35 5.2.2 CGI与数据库连接的理论限制 35 5.3 性能测试的性质 36 5.3.1 手工测试 36 5.3.2 内建性能工具 37 5.4 小结 37 第6章 经常忽视的问题 38 6.1 遗留应用程序 38 6.1.1 基于终端的主机应用程序 38 6.1.2 自定义的应用程序 39 6.2 数据库连接和许可证 39 6.2.1 微软的Web观点 40 6.2.2 MySQL的 Web观点 41 6.3 B2B的自动化 42 6.3.1 在线集成 42 6.3.2 纵向集成 43 6.4 小结 43 第二部分 解 决 方 案 第7章 Perl语言的Web开发 45 7.1 任何程序员都可以是Perl程序员 46 7.1.1 具有C背景的程序员 46 7.1.2 具有PHP背景的程序员 47 7.1.3 非程序员 49 7.2 Perl程序员之外的其他人员 50 7.2.1 系统管理员 50 7.2.2 分析员 51 7.2.3 数据库管理员 52 7.3 现有的大量Web代码 52 7.3.1 CGI资源索引 53 7.3.2 PerlMonks 53 7.3.3 SlashCode 53 7.4 标准CGI的例子 54 7.4.1 通用SQL查询处理器 54 7.4.2 用CGI.pm对表单访问 54 7.4.3 用正则表达式检查变量 57 7.4.4 用DBI.pm访问数据库 58 7.4.5 错误处理 58 7.5 系统管理的例子 59 7.5.1 宕机记录和通知 59 7.5.2 用LWP访问URL 62 7.5.3 用正则表达式查找字符串 62 7.5.4 通过Email或即时消息通知 63 7.5.5 日志结果 64 7.6 文本处理的例子 64 7.6.1 宕机记录分析 65 7.6.2 逐行语法分析 67 7.6.3 建立一个结果散列表 67 7.6.4 结果写为HTML 68 7.6.5 记录结果总结 68 7.7 小结 69 第8章 性能之谜 70 8.1 程序运行时 71 8.1.1 编译时间更长 71 8.1.2 磁盘输入/输出太慢 72 8.1.3 数据结构初始化占用时间 72 8.2 一般优化的效果 73 8.2.1 优化会增加开发时间 73 8.2.2 一个例外:XS优化模块 74 8.3 Perl和C的区别 74 8.3.1 C CGI还是慢 75 8.3.2 C程序优化不是自动的 75 8.3.3 C程序仍与数据库连接 76 8.4 令人迷惑的基准程序 77 8.4.1 基准测试程序只检测运行态 77 8.4.2 没有编译时的内在基准测试程序 79 8.4.3 连接时间的后果 80 8.4.4 数据库基准测试程序需要不同的环境 80 8.5 小结 82 第9章 持续性的力量 83 9.1 不要退出 83 9.1.1 再看GIMP和Word 84 9.1.2 事件循环 85 9.2 Web应用程序作为单独插件 85 9.2.1 Web服务器API 86 9.2.2 Apache API、NSAPI和ISAPI 86 9.2.3 线程化和Perl 5.6 87 9.3 Web应用程序在模块化程序中 88 9.3.1 基于子程序的执行过程 88 9.3.2 集成电路式程序的缺陷 89 9.4 Web应用程序作为持续性分割程序 89 9.4.1 再谈子程序 91 9.4.2 CGI的兼容性 91 9.4.3 变量、对象和内存问题 91 9.5 更有力的工具—群集、预缓存和平衡 92 9.5.1 群集应用程序引擎 93 9.5.2 预缓存模块 93 9.5.3 预缓存数据结构 94 9.5.4 跨引擎的负载平衡 94 9.6 小结 95 第10章 Perl持续性工具 97 10.1 mod_perl 97 10.1.1 mod_perl的体系结构 98 10.1.2 开放的源代码 98 10.1.3 与Apache紧密结合 99 10.1.4 广大用户群 99 10.1.5 面向对象编程 99 10.2 FastCGI 100 10.2.1 FastCGI的体系结构 100 10.2.2 熟悉的CGI方式的代码 101 10.3 VelociGen 101 10.3.1 VelociGen的体系结构 102 10.3.2 缓存和群集 102 10.3.3 完全CGI兼容 103 10.4 PerlEx 103 10.4.1 PerlEx的体系结构 104 10.4.2 ASP风格的编程 104 10.5 小结 104 第11章 持续性产生的问题 106 11.1 嵌套的子程序和变量范围 106 11.1.1 my关键词 106 11.1.2 变量错误 110 11.1.3 再看子程序和欺骗 113 11.1.4 使用警告捕捉异常行为 116 11.2 分叉、外部程序和速度杀手 116 11.2.1 外部程序和分叉进程 116 11.2.2 非有意分叉的进程 118 11.2.3 发现速度杀手 121 11.3 缓存 121 11.3.1 循环引用 121 11.3.2 示例: XML::DOM对象 122 11.4 小结 123 第12章 减少开发时间的环境 125 12.1 嵌入Perl 到HTML或 XML中 125 12.1.1 Hello World 125 12.1.2 采用Web方式 126 12.1.3 模板和代码分离 127 12.2 与CGI.pm方式比较 127 12.2.1 再看SQL查询处理器 127 12.2.2 处理表单变量 131 12.2.3 查询数据库 131 12.2.4 在HTML中格式化数据 132 12.3 HTML::Mason 133 12.3.1 改变查询处理器程序 133 12.3.2 划分Perl程序 136 12.3.3 使用外部程序组件 137 12.3.4 显示内联变量 138 12.3.5 优点和缺点 139 12.4 EmbPerl 139 12.4.1 改变查询处理器程序 139 12.4.2 划分Perl程序 142 12.4.3 表单变量 142 12.4.4 优点和缺点 143 12.5 Apache::ASP 143 12.5.1 改变查询处理器程序 143 12.5.2 划分Perl程序 146 12.5.3 表单变量 147 12.5.4 优点和缺点 147 12.6 Perl Server Page 148 12.6.1 改变查询处理器程序 148 12.6.2 划分Perl程序 151 12.6.3 显示内联变量 151 12.6.4 使用标准PSP标记 151 12.6.5 声明新的PSP标记 152 12.6.6 使用外部组件 153 12.6.7 优点和缺点 153 12.7 嵌入的性能问题 153 12.7.1 开销增加 154 12.7.2 没嵌入的情况 154 12.8 小结 155 第13章 在Perl应用程序中使用模板 156 13.1 模板HTML和图形编辑器 156 13.1.1 与HTML无关 157 13.1.2 图形编辑器对模板的效果 158 13.1.3 最好的防御:社会工程 159 13.2 在网站上应用模板 160 13.2.1 单一模板的情况 160 13.2.2 多模板 161 13.2.3 动态模板 162 13.3 使用PSP的简单模板 162 13.3.1 使用 标记 163 13.3.2 标记和page.psp 模板 165 13.3.3 增强模板 167 13.4 自动化模板更新 167 13.4.1 一个上载应用程序的模板 168 13.4.2 接受文件上载 169 13.4.3 检查新模板 171 13.4.4 新模板通知 172 13.5 CPAN上的模板模块 174 13.5.1 HTML::Template 175 13.5.2 Text::Template 175 13.5.3 其他模板模块 176 13.6 使用模板的性能问题 176 13.7 小结 178 第14章 数据库支持的Web站点 179 14.1 为Web加速DBI 179 14.1.1 使用Apache::DBI 179 14.1.2 准备带占位符的语句 181 14.1.3 准备缓存声明 183 14.1.4 检索数据集 184 14.1.5 绑定结果列 184 14.2 Web模型化的SQL语句 185 14.2.1 内联和外联 186 14.2.2 其他昂贵的查询 187 14.2.3 文本搜索 188 14.3 为提高Web性能管理数据库 189 14.3.1 非规范化数据表 189 14.3.2 检索连接的域 191 14.3.3 创建快照 192 14.3.4 视图和快照 192 14.4 MySQL示例 193 14.4.1 数据库支持的Web论坛 194 14.4.2 用占位符缓存显示查询 194 14.4.3 全文搜索 197 14.5 不需数据库的情况 202 14.5.1 用户参数选择 202 14.5.2 基于文档的数据 203 14.5.3 用户状态管理 203 14.5.4 Apache::Session 204 14.6 小结 205 第15章 测试站点性能 206 15.1 创建一个有用的测试 206 15.1.1 发现使用模式 206 15.1.2 使用代理数据 207 15.1.3 估计站点流量 208 15.2 对 ApacheBench的基本负载模拟 208 15.2.1 配置ApacheBench 209 15.2.2 模拟一个简单路径 210 15.2.3 比较多个简单路径 211 15.2.4 比较多个复杂路径 214 15.3 用VeloMeter进行图形比较 216 15.3.1 配置代理程序 216 15.3.2 日志文件配置 217 15.3.3 比较设置 218 15.4 模拟站点超载 219 15.4.1 测试基线性能 219 15.4.2 查处故障点 220 15.4.3 修复后再测试 220 15.4.4 测试实际站点 220 15.5 小结 221 第三部分 面向未来的解决方案 第16章 XML和内容管理 223 16.1 XML::Simple模块 223 16.1.1 简单XML语法分析 224 16.1.2 不用了解XML细节 225 16.1.3 XML::Simple的缺陷 227 16.2 生成XML接口的工具 229 16.2.1 XML::Parser和 Expat 229 16.2.2 XML::DOM 229 16.2.3 其他XML工具 230 16.3 一个基于XML的发布系统的例子 230 16.3.1 简单图书格式 230 16.3.2 XML::Simple模板 232 16.3.3 发布成HTML 233 16.3.4 转换模板 234 16.3.5 全文搜索 237 16.4 小结 241 第17章 面向无线设备发布XML 242 17.1 面向无线Web的无线标识语言WML 242 17.1.1 WML和未来的标准 242 17.1.2 有关面向无线设备的内容 244 17.1.3 给WML加模板 245 17.2 多主页文档 246 17.2.1 用PATH_INFO解耦文档名称 247 17.2.2 利用PATH_INFO的发布程序 247 17.2.3 添加目录处理器 249 17.2.4 再谈WML 249 17.3 小结 250 第18章 XML作为B2B的接口 251 18.1 B2B的例子 251 18.1.1 交易厅 251 18.1.2 Web站点内容镜像 252 18.1.3 内容整合 252 18.2 XML-RPC的实现 253 18.2.1 远程过程调用 253 18.2.2 XML-RPC接口 254 18.3 用SOAP实现 254 18.3.1 SOAP::Lite 255 18.3.2 SOAP::Lite 服务器 255 18.3.3 SOAP::Lite客户端 256 18.4 小结 258 第19章 Web服务 259 19.1 一个旅行者的故事 259 19.2 圣杯:自动化 260 19.2.1 HTML的问题 261 19.2.2 屏幕橡皮擦 261 19.2.3 除了屏幕橡皮擦之外 262 19.3 SOAP和Web服务 262 19.3.1 现有的Web服务 262 19.3.2 开放系统为Web服务 263 19.3.3 把方法群集为有用的形式 263 19.4 WSDL和UDDI 264 19.4.1 WSDL标准 264 19.4.2 UDDI目录 264 19.5 小结 265 第20章 定制Perl方案 266 20.1 负载平衡和群集 266 20.1.1 外部负载平衡 266 20.1.2 基于Perl的负载平衡 267 20.1.3 基于Perl的群集 268 20.1.4 基于Perl的同步 268 20.2 DBI和高级数据集 269 20.2.1 DBIx::Recordset 269 20.2.2 DBD::Multiplex 270 20.3 小结 270 第21章 Perl 6及其未来 272 21.1 从Perl 5到Perl 6的迁移 272 21.1.1 Perl编译器 272 21.1.2 Perl 6反编译器 273 21.2 语言无关的Perl 273 21.2.1 从Java到Perl 274 21.2.2 内联模块 274 21.3 Perl 6性能改善 274 21.3.1 编译独立的程序 275 21.3.2 Perl到C编译 275 21.4 小结 276 术语表 277 |
|
|