`
阿尔萨斯
  • 浏览: 4110238 次
社区版块
存档分类
最新评论

美丽的错误

 
阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

  “善意的谎言、美丽的错误”,这些事情在我们的生活及工作经常都在发生。最近花了三天多的时间学习了EasyJF开源官网的Blog程序源码,振奋人心之处就不说了,看过的都知道。同时也存在很多的错误,这些错误有的是由我不知何时亲自导演,这里就捡一些“美丽”的错误及Bub来说说,为了自己以后不再犯这样错误。

  技术构架:EasyJWeb+Spring2+JPA 视图模板使用:Velocity

 1、很Cool的循环 来自:Blog的圈子显示 错误等级★★★★★

#foreach($!subListin$!CommUtil.toRowChildList($myOnweCircle,2))
tr>
#foreach($!infoin$subList)
td>
$!info.title
td>
#end
tr>
#end

  其中$myOnwerCircle是从后台传过来的一个List。这个程序是遍历一个列集合,把集合的元素循环显示到

中,第行最多显示两列。

  但无论如何,都无法得到想要的结果,由于准备换成类似$BlogQuery.circleQuery.user($blog.owner).number(-1).list这样的标签来查询数据,所以一直认为是标签设计的问题。经过后来的一阵折腾证明是脚本写法的问题,你知道是哪些地方出的问题了吗?先说明:$!CommUtil.toRowChildList这个标签没任何问题。

2、easy的echo 来自:Blog的圈子显示 错误等级★★★★★☆
  页面内容:

spanclass="strong0">$!info.title($!info.blogs.size())span>br>


  这里打算显示圈子的主题以及圈子下面的blog数量。但如果不亲身体会,鬼都不知道他会给你显示什么出来。你知道吗?

 3、非菜鸟的equals 来自:文章及照片评论
  

Stringuser=!"".equals(obj.getInputUser())?obj.getInputUser().getName():"匿名用户";

  数据结构永远就比算法重要,这个是不容质疑的,可以搞出很漂亮的算法,但没有一个好的模型,你就瞎忙吧。你觉得上面的代码哪儿错了?

 4、一不小心就OO及ORM 来自:评论系统设计 ★★☆

@Entity
@javax.persistence.Inheritance(strategy
=javax.persistence.InheritanceType.JOINED)
@Cache(usage
=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@FormPO(inject
="sequence,content,owner")
publicabstractclassReviewimplementsjava.io.Serializable...{

@Id
@GeneratedValue(strategy
=GenerationType.TABLE)
privateLongid;//主键
..}



@FormPO(inject
="blogOwner,inputUser")
@Entity
@javax.persistence.MappedSuperclass
publicclassBlogReviewextendsReviewimplementsIBlogComponment...{
@POLoad(name
="userId")
@ManyToOne
privateUserblogOwner;

privateStringinputUser;
}



@FormPO(inject
="newsDoc")
@Entity
publicclassBlogNewsReviewextendsBlogReview...{
@POLoad(name
="docId")
@ManyToOne
@JoinColumn
privateBlogNewsDocnewsDoc;//评论的对象

}


publicinterfaceIBlogReviewDAOextendsGenericDAOBlogReview>...{

}


privateIBlogReviewDAOdao;
publicBlogReviewgetBlogReview(Longid)...{
returnthis.dao.get(id);
}


  评论系统,管理员能管理所有评论,能对Blog文章、像册等进行评论。
这个示例要是搞好了可以当成是一个比较经典的OO及ORM示例,但是现在这样的写法你知道JPA会创建几张表吗,各个表之间关联字段是是什么? Service中的getBlogReview返回什么?答对了有奖。


 4、有事无事的事务 来自blog信息发表

<!--</span><span style="COLOR: #000000">事务配置</span><span style="COLOR: #000000">-->
aop:config>
aop:pointcutid="saveMethods"
expression
="execution(*com.easyjf.blog.service.BlogNewsDocService.*(..))"/>
aop:advisoradvice-ref="txBlogServiceAdvice"
pointcut
-ref="saveMethods"/>
aop:config>
tx:adviceid="txBlogServiceAdvice"
transaction
-manager="transactionManager">
tx:attributes>
tx:methodname="wirteBlog*"propagation="REQUIRES_NEW"/>
tx:methodname="update*"propagation="REQUIRES_NEW"/>
tx:methodname="get*"propagation="SUPPORTS"
read
-only="true"/>
tx:methodname="query*"propagation="SUPPORTS"
read
-only="true"/>
tx:methodname="*"propagation="REQUIRED"/>
tx:attributes>
tx:advice>

代码:
this.service.addBlogReview(review);
if(reviewinstanceofBlogNewsReview)...{
BlogNewsReviewr
=(BlogNewsReview)review;
//this.docService.updateBlogNewsDoc(r.getNewsDoc());
this.htmlGenerator.process(r.getNewsDoc());
r.getNewsDoc().getReviews().remove(r);
//很怪也滑稽的设计
returnnewPage("html",r.getNewsDoc().getStaticUrl(),"html");
}


  为什么Blog更新后出来的html页面还是上一次更新的内容?为什么在添加新闻的评论里面要加一句r.getNewsDoc().getReviews().remove(r),是无奈还是真的滑稽。

 5、究竟是要IP、IQ还是IC卡 来自:blog首页 ☆
 

 后台Action代码
publicPagedoInit(WebFormform,Modulemodule)...{
form.addResult(
"blogInfoService",this.blogInfoService);
form.addResult(
"bqu",bqu);
form.addResult(
"bdqu",bdqu);
form.addResult(
"bcqu",bcqu);
form.addResult(
"bb”bb);
if(UserContext.getUser()!=null)...{
form.addResult(
"user","true");
}

returnnewPage("index","/blog/index.html");
}

前台页面
#foreach($infoin$bcu.thisYear.doc.list)
$info.title
#end

  这段代码是想把一些实用工具比如bb,bq,bcqu,bdqu等暴露给页面,由页面人员根据自己的喜爱想要展示什么数据就展示什么数据。严格来说,这没什么错,只是害苦了美工MM而已,难怪她们不喜欢呆办公室。

 7、真空还是没空(is NULL or EMPTY) 来自Blog发布程序

业务层代码:
QueryObjectquery
=newQueryObject();
java.util.Calendarca
=java.util.Calendar.getInstance();
ca.setTimeInMillis(ca.getTimeInMillis()
-blogIntervals*1000);
query.addQuery(
"(obj.updateTimeorobj.updateTimeisEMPTY)",newObject[]...{ca.getTime()});
query.setPageSize(
-1);
Listlist
=this.blogService.getBlogInfo(query).getResult();

知道执行这段代码生成的SQL吗?一定会让你大吃一惊,把EMPTY改成NULL难道是我们想要的?

 8、F想要干什么 来自:blog新闻管理 

Javascript脚本代码:
functioninit()...{
F
=newFORM("blogNewsDoc.ejf","ListForm");
windowInit();
}

window.onload
=init;
F.doList
=F.doOneCommand("listDoc");

 
  古老的new FORM曾经让我们非常欣喜,但为什么现在换来的却是大家抱怨呢?代码有时候也是有生命的,你如何都不用心好好对待他,他怎么会一直按部就班的运转呢?

 9.想擦掉js给你留下的伤疤吗 来自blog管理后台
 

  Html代码
formname=”ListForm”id=”ListForm”/>
inputtype="button"name="submit"value="彻底删除"onClick="F.doRemove();"class="pushbutton"style="cursor:pointer">
form>
F.doRemove()里面会执行类似$(“ListForm”).submit()这样的代码来提交表单。


你觉得这段代码能让你真正的彻底删除掉js曾经留给你的诸多痛苦回忆吗?你继续痛哭吧,呵呵。其实我们只要仔细看一看就知道问题了。w3c可不是war3,不能随便乱来的。

10.你拥有什么? 来自Blog域对象

  

@FormPO(disInject="id,owner,inputTime,readTimes,status,elite,updated,docNum,photoNum")
@MappedSuperclass
publicclassAbstractBlogimplementsSerializable...{
@Id
@GeneratedValue(strategy
=GenerationType.TABLE)
protectedLongid;

@OneToOne
protectedUseronwer;

@Column(length
=200)
protectedStringtitle;//标题

@Column(length
=200)
protectedStringsubtitle;//副标题

}

页面标签:
#foreach($info$BlogQuery.photoQuery.blogOwner($blog.owner).number(
6).orderBy("inputTime").desc().list)

#end

  呵呵,今天就这么多了,先听听大家的高见!下次发几个能让人眼前一亮的。




  “善意的谎言、美丽的错误”,这些事情在我们的生活及工作经常都在发生。最近花了三天多的时间学习了EasyJF开源官网的Blog程序源码,振奋人心之处就不说了,看过的都知道。同时也存在很多的错误,这些错误有的是由我不知何时亲自导演,这里就捡一些“美丽”的错误及Bub来说说,为了自己以后不再犯这样错误。

  技术构架:EasyJWeb+Spring2+JPA 视图模板使用:Velocity

 1、很Cool的循环 来自:Blog的圈子显示 错误等级★★★★★

#foreach($!subListin$!CommUtil.toRowChildList($myOnweCircle,2))
tr>
#foreach($!infoin$subList)
td>
$!info.title
td>
#end
tr>
#end

  其中$myOnwerCircle是从后台传过来的一个List。这个程序是遍历一个列集合,把集合的元素循环显示到

中,第行最多显示两列。

  但无论如何,都无法得到想要的结果,由于准备换成类似$BlogQuery.circleQuery.user($blog.owner).number(-1).list这样的标签来查询数据,所以一直认为是标签设计的问题。经过后来的一阵折腾证明是脚本写法的问题,你知道是哪些地方出的问题了吗?先说明:$!CommUtil.toRowChildList这个标签没任何问题。

2、easy的echo 来自:Blog的圈子显示 错误等级★★★★★☆
  页面内容:

spanclass="strong0">$!info.title($!info.blogs.size())span>br>


  这里打算显示圈子的主题以及圈子下面的blog数量。但如果不亲身体会,鬼都不知道他会给你显示什么出来。你知道吗?

 3、非菜鸟的equals 来自:文章及照片评论
  

Stringuser=!"".equals(obj.getInputUser())?obj.getInputUser().getName():"匿名用户";

  数据结构永远就比算法重要,这个是不容质疑的,可以搞出很漂亮的算法,但没有一个好的模型,你就瞎忙吧。你觉得上面的代码哪儿错了?

 4、一不小心就OO及ORM 来自:评论系统设计 ★★☆

@Entity
@javax.persistence.Inheritance(strategy
=javax.persistence.InheritanceType.JOINED)
@Cache(usage
=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@FormPO(inject
="sequence,content,owner")
publicabstractclassReviewimplementsjava.io.Serializable...{

@Id
@GeneratedValue(strategy
=GenerationType.TABLE)
privateLongid;//主键
..}



@FormPO(inject
="blogOwner,inputUser")
@Entity
@javax.persistence.MappedSuperclass
publicclassBlogReviewextendsReviewimplementsIBlogComponment...{
@POLoad(name
="userId")
@ManyToOne
privateUserblogOwner;

privateStringinputUser;
}



@FormPO(inject
="newsDoc")
@Entity
publicclassBlogNewsReviewextendsBlogReview...{
@POLoad(name
="docId")
@ManyToOne
@JoinColumn
privateBlogNewsDocnewsDoc;//评论的对象

}


publicinterfaceIBlogReviewDAOextendsGenericDAOBlogReview>...{

}


privateIBlogReviewDAOdao;
publicBlogReviewgetBlogReview(Longid)...{
returnthis.dao.get(id);
}


  评论系统,管理员能管理所有评论,能对Blog文章、像册等进行评论。
这个示例要是搞好了可以当成是一个比较经典的OO及ORM示例,但是现在这样的写法你知道JPA会创建几张表吗,各个表之间关联字段是是什么? Service中的getBlogReview返回什么?答对了有奖。


 4、有事无事的事务 来自blog信息发表

<!--</span><span style="COLOR: #000000">事务配置</span><span style="COLOR: #000000">-->
aop:config>
aop:pointcutid="saveMethods"
expression
="execution(*com.easyjf.blog.service.BlogNewsDocService.*(..))"/>
aop:advisoradvice-ref="txBlogServiceAdvice"
pointcut
-ref="saveMethods"/>
aop:config>
tx:adviceid="txBlogServiceAdvice"
transaction
-manager="transactionManager">
tx:attributes>
tx:methodname="wirteBlog*"propagation="REQUIRES_NEW"/>
tx:methodname="update*"propagation="REQUIRES_NEW"/>
tx:methodname="get*"propagation="SUPPORTS"
read
-only="true"/>
tx:methodname="query*"propagation="SUPPORTS"
read
-only="true"/>
tx:methodname="*"propagation="REQUIRED"/>
tx:attributes>
tx:advice>

代码:
this.service.addBlogReview(review);
if(reviewinstanceofBlogNewsReview)...{
BlogNewsReviewr
=(BlogNewsReview)review;
//this.docService.updateBlogNewsDoc(r.getNewsDoc());
this.htmlGenerator.process(r.getNewsDoc());
r.getNewsDoc().getReviews().remove(r);
//很怪也滑稽的设计
returnnewPage("html",r.getNewsDoc().getStaticUrl(),"html");
}


  为什么Blog更新后出来的html页面还是上一次更新的内容?为什么在添加新闻的评论里面要加一句r.getNewsDoc().getReviews().remove(r),是无奈还是真的滑稽。

 5、究竟是要IP、IQ还是IC卡 来自:blog首页 ☆
 

 后台Action代码
publicPagedoInit(WebFormform,Modulemodule)...{
form.addResult(
"blogInfoService",this.blogInfoService);
form.addResult(
"bqu",bqu);
form.addResult(
"bdqu",bdqu);
form.addResult(
"bcqu",bcqu);
form.addResult(
"bb”bb);
if(UserContext.getUser()!=null)...{
form.addResult(
"user","true");
}

returnnewPage("index","/blog/index.html");
}

前台页面
#foreach($infoin$bcu.thisYear.doc.list)
$info.title
#end

  这段代码是想把一些实用工具比如bb,bq,bcqu,bdqu等暴露给页面,由页面人员根据自己的喜爱想要展示什么数据就展示什么数据。严格来说,这没什么错,只是害苦了美工MM而已,难怪她们不喜欢呆办公室。

 7、真空还是没空(is NULL or EMPTY) 来自Blog发布程序

业务层代码:
QueryObjectquery
=newQueryObject();
java.util.Calendarca
=java.util.Calendar.getInstance();
ca.setTimeInMillis(ca.getTimeInMillis()
-blogIntervals*1000);
query.addQuery(
"(obj.updateTimeorobj.updateTimeisEMPTY)",newObject[]...{ca.getTime()});
query.setPageSize(
-1);
Listlist
=this.blogService.getBlogInfo(query).getResult();

知道执行这段代码生成的SQL吗?一定会让你大吃一惊,把EMPTY改成NULL难道是我们想要的?

 8、F想要干什么 来自:blog新闻管理 

Javascript脚本代码:
functioninit()...{
F
=newFORM("blogNewsDoc.ejf","ListForm");
windowInit();
}

window.onload
=init;
F.doList
=F.doOneCommand("listDoc");

 
  古老的new FORM曾经让我们非常欣喜,但为什么现在换来的却是大家抱怨呢?代码有时候也是有生命的,你如何都不用心好好对待他,他怎么会一直按部就班的运转呢?

 9.想擦掉js给你留下的伤疤吗 来自blog管理后台
 

  Html代码
formname=”ListForm”id=”ListForm”/>
inputtype="button"name="submit"value="彻底删除"onClick="F.doRemove();"class="pushbutton"style="cursor:pointer">
form>
F.doRemove()里面会执行类似$(“ListForm”).submit()这样的代码来提交表单。


你觉得这段代码能让你真正的彻底删除掉js曾经留给你的诸多痛苦回忆吗?你继续痛哭吧,呵呵。其实我们只要仔细看一看就知道问题了。w3c可不是war3,不能随便乱来的。

10.你拥有什么? 来自Blog域对象

  

@FormPO(disInject="id,owner,inputTime,readTimes,status,elite,updated,docNum,photoNum")
@MappedSuperclass
publicclassAbstractBlogimplementsSerializable...{
@Id
@GeneratedValue(strategy
=GenerationType.TABLE)
protectedLongid;

@OneToOne
protectedUseronwer;

@Column(length
=200)
protectedStringtitle;//标题

@Column(length
=200)
protectedStringsubtitle;//副标题

}

页面标签:
#foreach($info$BlogQuery.photoQuery.blogOwner($blog.owner).number(
6).orderBy("inputTime").desc().list)

#end

  呵呵,今天就这么多了,先听听大家的高见!下次发几个能让人眼前一亮的。




<!-- Baidu Button BEGIN -->
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script><!-- Baidu Button END --><!--192.168.100.33--><!-- Baidu Button BEGIN --><script type="text/javascript" id="bdshare_js" data="type=tools&amp;uid=1536434"></script><script type="text/javascript" id="bdshell_js"></script><script type="text/javascript"> document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000) </script><!-- Baidu Button END -->
主题推荐
数据结构 javascript interface 设计 数据
猜你在找
<script type="text/javascript"> var searchtitletags = ' 美丽的错误' + ',' + '数据结构,javascript,interface,设计,数据'; searchService({ index: 'blog', query: searchtitletags, from: 10, size: 10, appendTo: '#res-relatived', url: 'recommend', his: 2, client: "blog_cf_enhance", tmpl: '<dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="#{ url }" title="#{ title }" strategy="#{ strategy }">#{ title }</a></dd>' }); </script>
<script type="text/javascript"> new Ad(4, 'ad_cen'); </script>
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
<script type="text/javascript"> var fileName = '2522736'; var commentscount = 0; var islock = false </script><script type="text/javascript" src="http://static.blog.csdn.net/scripts/comment.js"></script>
<script type="text/javascript"> new Ad(5, 'ad_bot'); </script>
<script type="text/javascript"> $(function () { $("#ad_frm_0").height("90px"); setTimeout(function(){ $("#ad_frm_2").height("200px"); },1000); if($("#comment_content").length>0) { $("#quick-reply").show(); $("#quick-reply").click(function(){ setEditorFocus(); }); } var d_top = $('#d-top-a'); document.onscroll = function () { var scrTop = (document.body.scrollTop || document.documentElement.scrollTop); if (scrTop > 500) { d_top.show(); } else { d_top.hide(); } } $('#d-top-a').click(function () { scrollTo(0, 0); this.blur(); return false; }); }); </script><style type="text/css"> .tag_list { background: none repeat scroll 0 0 #FFFFFF; border: 1px solid #D7CBC1; color: #000000; font-size: 12px; line-height: 20px; list-style: none outside none; margin: 10px 2% 0 1%; padding: 1px; } .tag_list h5 { background: none repeat scroll 0 0 #E0DBD3; color: #47381C; font-size: 12px; height: 24px; line-height: 24px; padding: 0 5px; margin: 0; } .tag_list h5 a { color: #47381C; } .classify { margin: 10px 0; padding: 4px 12px 8px; } .classify a { margin-right: 20px; white-space: nowrap; } </style>
    个人资料
    • 访问:1380197次
    • 积分:83462分
    • 排名:第4名
    • 原创:7468篇
    • 转载:0篇
    • 译文:0篇
    • 评论:81条
    文章搜索
    <script type="text/javascript"> $(function () { $("#btnSubmit").click(function () { search(); }); $("#frmSearch").submit(function () { search(); return false; }); function search() { var url = "http://so.csdn.net/so/search/s.do?q=" + encodeURIComponent($("#inputSearch").val()) + "&u=" + username + "&t=blog"; window.location.href = url; } }); </script>
      文章存档
      推荐文章
      <script type="text/javascript"> new Ad(12, 'ad_commend'); </script>
        最新评论
      <script type="text/javascript" src="http://csdnimg.cn/rabbit/cnick/cnick.js"></script><script type="text/javascript" src="http://static.blog.csdn.net/scripts/newblog.min.js"></script><script type="text/javascript" src="http://medal.blog.csdn.net/showblogmedal.ashx?blogid=254649"></script><script type="text/javascript"> document.write('<script type="text/javascript" src="http://csdnimg.cn/pubfooter/js/publib_footer.js?' + Math.floor(new Date() / 120000).toString(36) + '="></' + 'script>'); </script><script type="text/javascript" src="http://passport.csdn.net/content/loginbox/login.js"></script><script type="text/javascript">document.write("<img src=http://counter.csdn.net/pv.aspx?id=24 border=0 width=0 height=0>");</script><script type="text/javascript" src="http://www.csdn.net/ui/scripts/Csdn/counter.js"></script><script type="text/javascript" src="http://ad.csdn.net/scripts/ad-blog.js"></script><script type="text/javascript" src="http://zz.csdn.net/js/count.js"></script><script type="text/javascript"> $(function () { function __get_code_toolbar(snippet_id) { return $("<a href='https://code.csdn.net/snippets/" + snippet_id + "' target='_blank' title='在CODE上查看代码片' style='text-indent:0;'><img src='https://code.csdn.net/assets/CODE_ico.png' width=12 height=12 alt='在CODE上查看代码片' style='position:relative;top:1px;left:2px;'/></a>" + "<a href='https://code.csdn.net/snippets/" + snippet_id + "/fork' target='_blank' title='派生到我的代码片' style='text-indent:0;'><img src='https://code.csdn.net/assets/ico_fork.svg' width=12 height=12 alt='派生到我的代码片' style='position:relative;top:2px;left:2px;'/></a>"); } $("[code_snippet_id]").each(function () { __s_id = $(this).attr("code_snippet_id"); if (__s_id != null && __s_id != "" && __s_id != 0 && parseInt(__s_id) > 70020) { __code_tool = __get_code_toolbar(__s_id); $(this).prev().find(".tools").append(__code_tool); } }); }); </script><!--new top--><script id="csdn-toolbar-id" btnid="header_notice_num" wrapid="note1" count="5" subcount="5" type="text/javascript" src="http://static.csdn.net/public/common/toolbar/js/toolbar.js"></script><!--new top-->
      分享到:
      评论

      相关推荐

        点火:Laravel应用的美丽错误页面

        点火:Laravel应用的美丽错误页面 对于在Laravel 5.5及更高版本上运行的Laravel应用程序,是一个漂亮且可自定义的错误页面。 这是所有Laravel 6应用程序的默认错误页面。 它还允许在上公开分享您的错误。 如果使用...

        Laravel应用的美丽错误页面-PHP开发

        点火:Laravel应用程序的漂亮错误页面点火是运行在Laravel 5.5及更高版本上的Laravel应用程序的漂亮且可自定义的错误页面。 这是所有Laravel 6应用程序的默认错误页面。 I Ignition:Laravel应用程序的漂亮错误页面...

        错误也是一种美丽.doc

        错误也是一种美丽.doc

        OpinionzAlertView, 带有块的美丽定制警报视图.zip

        OpinionzAlertView, 带有块的美丽定制警报视图 OpinionzAlertView 简介带有块的美丽定制警报视图。 从预定义图标中选择信息,警告,成功和错误通知。 自定义颜色或者设置所需图像。预览 安装###...

        Access 开发人员常犯错误大全

        漂亮的姑娘喜欢穿美丽的衣服,丑姑娘也喜欢美丽的衣服,可ACCESS除了提供定制菜单与开关面版之外,不提供任何定制控键的功能。你如果想使用自己的按扭,得编写许多许多代码,非常麻烦。为什么,为什么你们总放着现成...

        alerts-are-easy:显示美丽的成功,警告,错误和信息消息

        该软件包将通过漂亮的UI帮助您在本机应用程序中显示成功,警告,错误和信息消息。 例子 安装 npm install --save alerts-are-easy 警报很容易,需要来显示图标。 安装此对等依赖项并开始使用警报功能。 用法 ...

        mongoose-beautiful-unique-validation:用于Mongoose的插件,可将重复的错误转换为常规的Mongoose验证错误

        猫鼬美丽唯一验证用于Mongoose的插件,可将重复的错误转换为常规的Mongoose验证错误。 Mongoose的unique约束实际上依赖于MongoDB的unique索引。 这意味着,如果您具有这样的模式: mongoose . Schema ( { name : { ...

        gradientful:美丽的ui渐变

        渐变是由社区贡献的美丽多色渐变集合 关于 这是一个由社区回馈社区的努力。 希望这将帮助您汲取灵感,并为您为自己的项目选择渐变提供资源。 贡献 向库中添加渐变非常简单。 所有渐变都是从根目录中的单个gradients....

        ASP.NET中的自定义错误

        当出现黄色的死亡屏幕时,用户会分心!! 把它们扔在美丽而又不同的页面上...让我们学习...

        kouki:personal个人博客的美丽和最小主题

        Kouki-个人博客的美丽和最小主题 Kouki适用于希望以令人愉悦且最小的方式显示其内容的发布者。 非常适合美食博客,摄影师,极简主义者,滚滚日志以及其他喜欢朴实WordPress主题的人。 非强制性主题选项可帮助您根据...

        光环主题:for您喜欢的应用程序的美丽黑暗主题

        光环主题是一个美丽的深色主题,其中包括专注于长期工作而不会引起眼睛不适的变体。 现在可用于Visual Studio代码,超级终端,iTerm,Slack和失眠。 主题 Visual Studio程式码 超级终端 iTerm 松弛 失眠 贡献 ...

        skyblock-stats:美丽的SkyBlock个人资料查看器:rose:

        美丽的SkyBlock个人资料查看器 :rose: 通过该项目,您可以与其他玩家共享您的 SkyBlock个人资料,并快速了解自己的统计信息,技能,装甲,武器和配件。 网址: : 截屏贡献由于我不再积极维护该项目,因此不太可能...

        琥珀色:一种Crystal Web框架,可使构建应用程序变得快速,简单和愉快。 快速原型制作,更少的错误和快速的性能开始

        Amber使构建Web应用程序变得快速,简单和令人愉悦-减少了错误,并提高了性能。 欢迎来到琥珀 Amber是一个以编写的Web应用程序框架,灵感来自Kemal,Rails,Phoenix和其他流行的应用程序框架。 Amber的目的不是创建...

        quran-extension:用古兰经和美丽的大自然图片代替新的标签页

        用古兰经经文和美丽的大自然图片代替新的标签页。 经文和图片每小时随机生成一次。 您可以选择显示或隐藏您的热门网站。 您可以在找到Firefox扩展 下载 在添加chrome扩展名。 回历日期 您可以显示今天的回历日期和...

        SeansLifeArchive_Images_Snow:我的人生故事项目模块,其中包含美丽的雪景图片

        我的人生故事项目模块,其中包含美丽的雪景图片。 关于 看上面 维基百科 版本历史 不可用 资源 目前没有其他资源。 软件状态 我所有的作品都是免费的,有一些限制。 DRM(d igital [R estrictions中号anagement)不...

        拖放具有美丽的React

        您还将在控制台中看到任何棉绒错误。yarn test 在交互式监视模式下启动测试运行程序。 有关更多信息,请参见关于的部分。yarn build 构建生产到应用程序build文件夹。 它在生产模式下正确捆绑了React,并优化了构建...

        DotMail:美丽的电子邮件

        .Mail 实现了所有主要的电子邮件协议:POP、IMAP 和 SMTP,并在智能后端后面隐藏了实现细节和相当多的错误处理,使应用程序的使用尽可能轻松和顺畅。 ##Installation(如有必要,从 DotMail 的任何先前迭代中删除 ...

        将Unix命令行工具公开为Swift 5 @dynamicCallable函数的模块-Swift开发

        它应该可以正常工作,但是以错误处理和适当的Swift美丽为名,您可以在Shell模块中将Unix命令行工具公开为Swift 5 @dynamicCallable函数。 它应该可以正常工作,但是以错误处理和适当的Swift美丽为名,您可能希望以...

        佳能数码相机使用指南(很实用的)

        所以,即使在拍摄时犯了技术错误,在看到最终的照片时也无法觉察到失误之处,导致不断重复犯相同的错误。而使用数码相机时则可以通过背面的液晶显示屏当场看到拍摄结果,更容易把握失误的原因,提高摄影水平的速度比...

        【C++】3D场景漫游程序源码 by浅墨

        一个综合型的Direct3D示例程序,用键盘上W,A,S,D,I,J,K,L,↑,↓,←,→12个键加上鼠标在美丽的三维空间中翱翔。包括了Direct3D初始化,DirectInput输入处理,顶点缓存,光照与材质,文字输出,颜色,纹理贴图,...

      Global site tag (gtag.js) - Google Analytics