我会把问题先写在前面,答案用白色字体写在后面.所以用鼠标选择文本就可以看到答案啦.

调用await后因为切换了线程环境(这种说法可能不严谨,但我只能想到这种说法),httpcontext会为null.自然取他的属性(request,response)会出现未将对象引用设置到实例的异常.

虽然据说4.5有"友好线程上下文"的说法,但是呢,当时我试了那个配置,发现装逼失败.最后用临时变量储存,await之后再赋临时变量给当前上下文.

网站

发布网站的时候,全站源代码做成一个压缩包,然后丢到公网的项目根目录里,解压.这个操作有什么问题.

整站源代码都可以下载.好开心耶.(IIS默认没有禁止访问压缩包)

为什么网站发布完第一次访问的时候很慢?

JIT(即时编译)

基础

Dictionary

        public void RandomString(List<int> list)
{ Dictionary<int, string> d = new Dictionary<int, string>();
foreach (var item in list)
{
d.Add(item, "");
}
}

  上述代码有什么问题?

没有判断字典的添加需要先判断key是否存在.推广一下,其实很多情况下自认为不会重复的数据结果往往都会重复,这时候得去重和判断key,两者选择一个方案.

正则表达式

这个判断正则的方法有什么问题?

  public static bool IsEmail(this string str)
{
var reg = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$", RegexOptions.Singleline | RegexOptions.ExplicitCapture);
return reg.IsMatch(str);
}

  string参数为null的话正则会出错.其实这也是一个很通用的问题.如果各种引用类型为空的话,你调用他们的成员方法是要出异常的.

哪一个if的写法没有问题?

            string[] a;
if (a.Any() || a == null)
if (a == null || a.Any())

第二个,因为这涉及到一个程序设计的基本概念:短路.即||/|在条件1为true的话就不会执行后面的判断.

!=null&&XX.Any()同理

而对于null用集合的any方法,显然是不合适的.

ASB.NET MVC

控制器

下图是某个控制器里某个action的写法,不考虑rows的类型和这个异常的出现.此外,这个代码片段有什么问题?

1用request[]绝对差评,不能因为便携性而如此偷懒.并且,要偷懒也是把提交内容作为action参数,模型绑定会帮你转型,如果也不会需要下文的类型转换.

2对于请求的参数类型转换写法有误,理应是tryparse,2个结果皆为true才进行下一步.该coder只考虑了请求参数不为空的问题,没有考虑请求参数的其他合法性问题.

3局部变量的声明声明顺序(list)有误.比如我们需要连接数据库的时候,应该是在所有的验证通过之后,最后调用.

4设计规范问题.很多初学者看了微软模板后认为,控制器负责业务逻辑.然而,实际上控制器应该是最薄的一层,这既是为了方便分开测试.也是MVC本身的规范.

        [HttpGet]
public ActionResult Des(string json)
{
return Json(new { a = "" });
}

  有什么问题?

应使用其重载,追加参数 JsonRequestBehavior.AllowGet

视图

在视图中使用HTML.action 需要注意什么问题?

该方法会走一遍请求管道,滤器也会跑过去

不能使用异步控制器方法(async Task<ActionResult> .ASB.NET vnext将会有异步组件取代.)

递归调用问题.就是这个A的子action里面返回了一个分部视图,然后这个分部视图调用了A的那个action.

这个问题提醒大家,慎用全局过滤器,慎用html.action.

如何捕捉视图的异常?

用自定义异常过滤器(HandleErrorAttribute).(好吧,我打脸了).

避免因属性变更导致的强类型视图里的字段没有更新导致的视图编译错误如何防止?

可以在编译时追加编译视图.

一个不是问题的问题

为什么我写这文章的文字符号都用半角(英文标点)

因为用全角符号写程序符号将导致无法通过编译.

之前刘兴国一段时间的揭秘网站:

http://cafebabe.cc/nazo/

据说有500关.

如果这些问题你都知道答案,那么恭喜你,你是一个"有经验"的开发人员吧.

因为我也不知道经验这玩意该咋衡量.年?好像不太合适.

这些问题都是我遇到过的,如果用年算的话,你觉得能折算成多少年?

一些开发遇到的"小问题",你能答对多少?的更多相关文章

  1. ios开发中的小技巧

    在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewal ...

  2. 带你使用h5开发移动端小游戏

    带你使用h5开发移动端小游戏 在JY1.x版本中,你要做一个pc端的小游戏,会非常的简单,包括说,你要在低版本的浏览器IE8中,也不会出现明显的卡顿现象,你只需要关心游戏的逻辑就行了,比较适合逻辑较为 ...

  3. Android开发效率的小技巧

    提高eclipse使用效率(二) 提高Android开发效率的小技巧   XML文件的代码提示 adt中也有xml文件的代码提示,为了让提示来的更加猛烈,我们还要设置一下 打开eclipse - Wi ...

  4. 开发一个微信小程序教程

    一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可. 2.注册成功后进入首页,在 小程序发布流程->小程序 ...

  5. 开发一个微信小程序项目教程

    一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可.2.注册成功后进入首页,在 小程序发布流程->小程序开 ...

  6. 如何快速地开发一个微信小程序

    如何快速地开发一个微信小程序呢?我觉得作为初学者,最好能有一个模板,然后改这个模板. 同样作为初学者,刚开始的时候我有下面的几个问题,后来通过问同学,我弄清楚了. 微信小程序可以连接MySQL或者Sq ...

  7. Java可视化日历(Date类、DATe Format类、Calendar类综合运用),开发可视化日历小程序

    Java时间日期类综合运用,开发可视化日历小程序 由键盘输入指定格式的日期,打印这个月的日历 1.代码 import java.text.DateFormat; import java.text.Pa ...

  8. 全栈开发工程师微信小程序-中(下)

    全栈开发工程师微信小程序-中(下) 微信小程序视图层 wxml用于描述页面的结构,wxss用于描述页面的样式,组件用于视图的基本组成单元. // 绑定数据 index.wxml <view> ...

  9. 全栈开发工程师微信小程序-中(中)

    全栈开发工程师微信小程序-中(中) 开放能力 open-data 用于展示微信开放的数据 type 开放数据类型 open-gid 当 type="groupName" 时生效, ...

随机推荐

  1. [Android Pro] 监听Blutooth打开广播

    <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission a ...

  2. 分布式架构从零开始========》【基于Java自身技术实现消息方式的系统间通信】

    基于Java自身包实现消息方式的系统间通信的方式有:TCP/IP+BIO,TCP/IP+NIO,UDP/IP+BIO,UDP/IP+NIO.下面就这4种类型一一做个详细的介绍: 一.TCP/IP+BI ...

  3. php编译报错 configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/

    ➜ php- yum install -y curl-devel

  4. C#学习笔记---修饰符,this关键字和static关键字

    1.  C#中类的修饰符: public 表示不限制对该类的访问  protected 表示只能从所在类和所在类派生的子类进行访问    private 只有其所在类才能访问 internal 只有对 ...

  5. 我的MySQL5.6免安装版配置过程

    最近打算学习MySQL,第一步就是安装.下载到一个面安装版.解压到我的D盘的mysql目录. 弄了一个最简单的配置文件.目录中只有一个my-default.ini,基本没啥用.在网上弄了一个my.in ...

  6. async/await 异步编程

    前言 最近在学习Web Api框架的时候接触到了async/await,这个特性是.NET 4.5引入的,由于之前对于异步编程不是很了解,所以花费了一些时间学习一下相关的知识,并整理成这篇博客,如果在 ...

  7. JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)

    主函数类MainDemo.java package com.itcast.test20140109; import java.util.ArrayList; import java.util.Coll ...

  8. 编辑并列DIV

    html编辑控件,编写3个div并行,先看一下效果,如下图: 我需要将整个白色部分作为一个整体,编辑控件使用,其实使用到的就是div中的float:left属性,并且定义好宽度.css 部分代码如下: ...

  9. andorid开发易范的错误

    1 写DAO,调用远程API接口返回不来数据,实际这个api接口经过第三方工具测试通过的,原因是没有放到线程里.

  10. topcoder-srm701-div2-900 博弈\计算二进制位1的个数\dp\状态压缩

    借用一下qls翻译过来的题面  现在有 n 个石子,A 和 B 轮流取石子,A先,每次最多可以取 m 个石子,取到最后一个石子的人获胜,但是某个人如果取完石子时候剩余石子数的二进制表示中有奇数个1,这 ...