m_Orchestrate learning system---二十一、怎样写算法比较轻松

一、总结

一句话总结:(1、写出算法步骤,这样非常有利于理清思路,这样就非常简单了 2、把问题分细,小问题用函数弄出来)

1、学生端文章列表的格式是怎样的?

普通文章列表

这些样式的整体格式都是ul包li的形式

1、普通文章列表

就是一个am-list的经典样式:用了很多am-list的样式

 1 <ul class="am-list"> //1、外层的ul是包裹整个list的,用的是amaze的列表am-list
2 <!--缩略图在标题右边-->
3 <li //每一个项
4 class="am-g am-list-item-desced am-list-item-thumbed am-list-item-thumb-right pet_list_one_block"> //2、am-g表示行a,网格布局
5 <div class="pet_list_one_info"> //3、顶部的那一行
6 <div class="pet_list_one_info_l">
7 <div class="pet_list_one_info_ico">
8 <img src="__STUDENT__/img/a1.png" alt="">
9 </div>
10 <div class="pet_list_one_info_name">Super invincible 菁
11 </div>
12 </div>
13 <div class="pet_list_one_info_r">
14 <div class="pet_list_tag pet_list_tag_xxs">新鲜事</div>
15 </div>
16 </div>
17 <div class=" am-u-sm-8 am-list-main pet_list_one_nr"> //4、这里是网格模式,左8右4
18 <h3 class="am-list-item-hd pet_list_one_bt"> //5、这里h3标签做标题,用的还是am-list-item-hd
19 <a href="###" class="">十一长假哪也不去,宅在家里看电影!</a>
20 </h3> //6、下面用的am-list-item-text
21 <div class="am-list-item-text pet_list_one_text">每逢长假,总有那么一群人选择远离人山人海,静静地呆在家,坐在电脑电视前。长时间的工作学习让他们感觉很疲惫,对什么都提不起劲,打开电脑却不知道干什么好…</div>
22
23 </div>
24 <div class="am-u-sm-4 am-list-thumb"> //7、这是右边的图片,还用了am-list-thumb
25 <a href="###" class=""> <img src="__STUDENT__/img/q1.jpg"
26 class="pet_list_one_img" alt="" />
27 </a> //8、a标签包image的经典形式
28 </div>
29 </li>
30 </ul>

2、学生端多图配合文的形式如何实现?

这里的样式是:

div

  顶部一行

/div

div

  标题:h3

  图片:ul包li的均分网格模式

  简介:am-list-item-text,很普通的样式

/div

 1 <li class="am-g am-list-item-desced pet_list_one_block">
2 <div class="pet_list_one_info">
3 <div class="pet_list_one_info_l">
4 <div class="pet_list_one_info_ico">
5 <img src="__STUDENT__/img/a3.png" alt="">
6 </div>
7 <div class="pet_list_one_info_name">养了猫的飞飞</div>
8 </div>
9 <div class="pet_list_one_info_r">
10 <div class="pet_list_tag pet_list_tag_stj">阅读</div>
11 </div>
12 </div>
13 <div class=" am-list-main">
14 <h3 class="am-list-item-hd pet_list_one_bt">
15 <a href="###" class="">浣熊孤儿掉到树下,被一家人收养之后……</a>
16 </h3>
17 <ul data-am-widget="gallery"
18 class="am-gallery am-avg-sm-3
19 am-avg-md-3 am-avg-lg-3 am-gallery-default pet_list_one_list">
20 <li>
21 <div class="am-gallery-item">
22 <a href="###" class=""> <img
23 src="__STUDENT__/img/qq1.jpg" alt="某天 也许会相遇 相遇在这个好地方" />
24 </a>
25 </div>
26 </li>
27 <li>
28 <div class="am-gallery-item">
29 <a href="###" class=""> <img
30 src="__STUDENT__/img/qq2.jpg" alt="不要太担心 只因为我相信" />
31 </a>
32 </div>
33 </li>
34 <li>
35 <div class="am-gallery-item">
36 <a href="###" class=""> <img
37 src="__STUDENT__/img/qq3.jpg" alt="终会走过这条遥远的道路" />
38 </a>
39 </div>
40 </li>
41 </ul>
42 <div class="am-list-item-text pet_list_two_text">巴哈马拿骚的居民Rosie
43 Kemp发现一个刚出生的浣熊,掉在了树下。因为找不到小浣熊的妈妈了,Rosie和她的女儿Laura
44 Young决定收养这只小东西,并给她取名“小南瓜”。</div>
45 </div>
46 </li>

3、学生端的图片列表如何实现?

信息栏div+图片div(均分网格)

这里图片集用的是am-gallery
 1 <li class="am-g am-list-item-desced pet_list_one_block">
2 <div class="pet_list_one_info">
3 <div class="pet_list_one_info_tytj">
4 <i
5 class="iconfont pet_nav_kantuya pet_more_list_block_line_ico pet_list_tytj_ico"></i>诺奖得主回忆通知获奖那一刻
6 </div>
7 <div class="pet_list_one_info_r">
8 <div class="pet_list_tag pet_list_tag_kty">图集</div>
9 </div>
10 </div>
11 <div class=" am-list-main">
12 <ul data-am-widget="gallery" class="am-gallery am-avg-sm-3 am-avg-md-3 am-avg-lg-3 am-gallery-default pet_list_one_list pet_list_one_tytj">
13 <li>
14 <div class="am-gallery-item">
15 <a href="###" class=""> <img
16 src="__STUDENT__/img/w1.jpg" alt="某天 也许会相遇 相遇在这个好地方" />
17 </a>
18 </div>
19 </li>
20 <li>
21 <div class="am-gallery-item">
22 <a href="###" class=""> <img
23 src="__STUDENT__/img/w2.jpg" alt="不要太担心 只因为我相信" />
24 </a>
25 </div>
26 </li>
27 <li>
28 <div class="am-gallery-item">
29 <a href="###" class=""> <img
30 src="__STUDENT__/img/w3.jpg" alt="终会走过这条遥远的道路" />
31 </a>
32 </div>
33 </li>
34 <li>
35 <div class="am-gallery-item">
36 <a href="###" class=""> <img
37 src="__STUDENT__/img/w4.jpg" alt="终会走过这条遥远的道路" />
38 </a>
39 </div>
40 </li>
41 <li>
42 <div class="am-gallery-item">
43 <a href="###" class=""> <img
44 src="__STUDENT__/img/w5.jpg" alt="终会走过这条遥远的道路" />
45 </a>
46 </div>
47 </li>
48 <li>
49 <div class="am-gallery-item">
50 <a href="###" class=""> <img
51 src="__STUDENT__/img/w6.jpg" alt="终会走过这条遥远的道路" />
52 </a>
53 </div>
54 </li>
55 </ul>
56 </div>
57 </li>

4、Declaration of app\student\model\Engage::getData() should be compatible with think\Model::getData($name = NULL)?

自定义的函数和系统函数重名了

campatible是兼容的意思

5、如何在一个模型的模型外和模型里面获取数据?

模型外和模型里面获取数据(模型外要实例化模型对象,模型里面自然只需要$this即可)

参考手册模型外获取数据

$user = new User();
// 查询单个数据
$user->where('name', 'thinkphp')->find();

那模型里面肯定只需要使用$this对象即可啊

$res=$this->save($data);

6、thinkphp里面数据库表的拼接如何实现?

模型中用的一个长的sql

$article=db('article')->alias('a')->field('a.*,t.name as topicname,u.uname as authorname,u.picture as authorpicture')->join('topic t','a.topicid=t.id')->join('user u','a.authorid=u.id')->where('topicid','=',$v)->limit($artPerTopic)->order('click desc')->select();

join连了两个表

取出来的数据记得排序

7、如何快速高效的解决问题--对不同用户显示不同的数据?

解决问题思路的两条策略(对不同用户显示不同的数据)

1、把问题分细,小问题用函数弄出来

2、写出算法步骤,这样非常有利于理清思路

WeEngage中的模型

 1 <?php
2 namespace app\student\model;
3
4 use think\Model;
5 class Engage extends Model
6 {
7 //返回显示到页面的数据
8 public function getData_(){
9 //1、获取用户的id信息
10 $id=session('id');
11 //2、获取用户的小组信息
12 $group=db('user')->field('ugid')->find($id);
13 //3、获取用户小组对应的topic信息(注意未分组成员的信息)
14 $ugid=$group['ugid'];
15 $topicID=-1;
16 $haveTopic=false;//表示选择了小组,小组也选了topic
17 if($ugid){
18 $topicID=db('grouptopic')->where('gtgid','=',$ugid)->field('gttid')->select();
19 if($topicID) { $haveTopic=true; }
20 //dump($topicID);die;
21 }
22 //如果学生没有选择分组或者分的组没有选择topic
23 if(!$topicID||$topicID==-1) $topicID=db('topic')->field('id')->select();
24 $topics = array();
25 //如果小组选择了话题
26 if($topicID){
27 foreach ($topicID as $k => $v) {
28
29 if($haveTopic) $topics[]=$v['gttid'];
30 else $topics[]=$v['id'];
31 }
32 $topics=array_unique($topics);
33 sort($topics);
34 }
35 //4、获取topic信息下的文章,如果只有一个topic,那选10篇,2个topic,每个选6篇,3个每个选四篇,四个每个选3篇,五个每个选3,6个每个选2,七个每个选2,八个每个选2,9个每个选2,十个每个选1,超过10以上,每个选1
36 $artPerTopicArr=array(0,10,6,4,3,3,2,2,2,2,2);//每个topic选择的文章的数目
37 $topicNum=count($topics);//已选主题下的topic数目
38 $artPerTopic=1;//每个topic选择的文章的数目
39 if($artPerTopicArr[$topicNum]){ $artPerTopic=$artPerTopicArr[$topicNum];}
40 $articleArr=array();//文章集合
41 //遍历每个topic,然后找$artPerTopic篇这个topic下的文章
42 foreach ($topics as $k => $v) {
43 //dump($v);
44 $article=db('article')->alias('a')->field('a.*,t.name as topicname,u.uname as authorname,u.picture as authorpicture')->join('topic t','a.topicid=t.id')->join('user u','a.authorid=u.id')->where('topicid','=',$v)->limit($artPerTopic)->order('click desc')->select();
45 $articleArr=array_merge($articleArr,$article);
46 //dump($article);
47 }
48 //dump($articleArr);die;
49
50 //5、将文章信息返回到页面
51 return $articleArr;
52 //这个算法还是会导致就是学生选了小组,小组选了topic,但是如果主题下面没有文章的话,还是没有文章
53 }
54
55 //得到所有topic下面的文章
56 public function getAllTopicAirticle(){
57
58 }
59
60
61 //1、把问题分细,小问题用函数弄出来
62 //2、写出算法步骤,这样非常有利于理清思路,这样就非常简单了
63 }

8、WeEngage页面对不同用户返回不同数据,并且始终有数据返回的算法是什么?

WeEngage页面对不同用户返回不同数据,并且始终有数据返回算法

//engage正常的返回给页面数据的逻辑如下
//1、对于可以从用户->小组->topic->article可以取出非0的article的,就取article
//2、否则的话就直接在所有topic对应的article里面拿

这样就很清晰很简单了

9、组件化开发的好处是什么(或者说板块分离)?

a、简化开发

b、重复利用

c、代码少

d、结构清晰

想板块,板块分离

精彩评论板块

猜你喜欢板块

二、内容在总结中

m_Orchestrate learning system---二十一、怎样写算法比较轻松的更多相关文章

  1. m_Orchestrate learning system---二十、如何写代码不容易犯错

    m_Orchestrate learning system---二十.如何写代码不容易犯错 一.总结 一句话总结:能排序多排序 这次查错的启示: 1.代码数据更规整:要是取出的数据排序的话可以减少很多 ...

  2. m_Orchestrate learning system---十二、为什么thinkphp验证场景里面的多个属性之间是逗号

    m_Orchestrate learning system---十二.为什么thinkphp验证场景里面的多个属性之间是逗号 一.总结 一句话总结:因为是数组啊 1 protected $scene ...

  3. m_Orchestrate learning system---三十一、模板和需求的关系

    m_Orchestrate learning system---三十一.模板和需求的关系 一.总结 一句话总结:模板为了适应广大用户,有很多功能样式,但是,你需要的只是部分,所以删掉不需要的,如果有需 ...

  4. m_Orchestrate learning system---三十二、数据库字段判断为空时容易出现问题,如何从根本上解决这个问题

    m_Orchestrate learning system---三十二.数据库字段判断为空时容易出现问题,如何从根本上解决这个问题 一.总结 一句话总结:字段禁止为空,设置默认值0即可 禁止 空 默认 ...

  5. m_Orchestrate learning system---二十二、html代码如何变的容易

    m_Orchestrate learning system---二十二.html代码如何变的容易 一.总结 一句话总结:(结构清晰之后构建页面就变得超级容易了)(多做多用一下子就熟了) 1.文章显示页 ...

  6. 算法是什么(二)手写个链表(java)

    算法是什么(二)手写个链表(java)   liuyuhang原创,未经允许禁止转载 目录 算法是什么(〇) 很多语言的API中都提供了链表实现,或者扩展库中实现了链表. 但是更多的情况下,Map(或 ...

  7. Machine Learning - 第6周(Advice for Applying Machine Learning、Machine Learning System Design)

    In Week 6, you will be learning about systematically improving your learning algorithm. The videos f ...

  8. 经典算法题每日演练——第十一题 Bitmap算法

    原文:经典算法题每日演练--第十一题 Bitmap算法 在所有具有性能优化的数据结构中,我想大家使用最多的就是hash表,是的,在具有定位查找上具有O(1)的常量时间,多么的简洁优美, 但是在特定的场 ...

  9. JAVA之旅(二十一)——泛型的概述以及使用,泛型类,泛型方法,静态泛型方法,泛型接口,泛型限定,通配符

    JAVA之旅(二十一)--泛型的概述以及使用,泛型类,泛型方法,静态泛型方法,泛型接口,泛型限定,通配符 不知不觉JAVA之旅已经写到21篇了,不得不感叹当初自己坚持要重学一遍JAVA的信念,中途也算 ...

随机推荐

  1. 用jquery ajax做的select菜单,选中的效果

    //用server端语言赋值给js变量     var departmentId = '<%=提交的值 %>', deviceId='<%=提交的值 %>'     $(fun ...

  2. 2015.04.29,外语,读书笔记-《Word Power Made Easy》 14 “如何谈论日常现象” SESSION 39

    HOW TO TALK ABOUT COMMON PHENOMENA AND OCCURRENCES TEASER PREVIEW dire(['daiә(r)] adj. 可怕的,悲惨的,灾难警告的 ...

  3. IT关键词,面试知识问与答

    二叉树遍历的三种方式? 遍历是指依次访问⼆叉树中的每个元素.有三种遍历⽅法,分别是前序遍历. 中序遍历和后序遍历.它们是按照访问根节点和⼦节点的先后顺序命名的. • 前序遍历:先访问根节点,然后访问左 ...

  4. httpclient定时请求实例

    1.pom.xml <properties> <slf4j.version>1.7.21</slf4j.version> <okhttp.version> ...

  5. Java 系列之Filter(一)

    一.过滤器 过滤器就是在源数据和目的数据之间起过滤作用的中间组件.它可以截取客户端和资源之间的请求和响应信息,并且对这些信息进行过滤. 二.应用场景 1.对用户请求进行统一认证 2.对用户的访问请求进 ...

  6. RocketMQ学习笔记(12)----RocketMQ的Consumer API简介

    由于消息的消费方式有两种,所以两种方式也有不同的API: 1. PushConsumer的配置 1. consumerGroup: 默认值为DEFAULT_CONSUMER,Consumer组名,多个 ...

  7. 3ds Max制作欧式风格的墙壁路灯效果

    在这篇文章中,我将解释我创建我的形象元宵节的步骤.我只是在寻找一个很好的参考图像在互联网上的东西,我觉得我想要的模型,这个形象.我发现了一个巨大的灯笼形象,但在白天的图片拍摄.我想改变我的形象和显示的 ...

  8. [读书笔记] R语言实战 (六) 基本图形方法

    1.  条形图 barplot() #载入vcd包 library(vcd) #table函数提取各个维度计数 counts <- table(Arthritis$Improved) count ...

  9. VUE:UI组件库(Mint UI & Elment)

    VUE:UI组件库 常用 1)Mini UI: a 主页:http://mint-ui.github.io/#!/zh-cn b 说明:饿了么开源的基于vue的移动端UI组件库 2)Elment a ...

  10. 20130910.Windows上安装和配置MongoDB

    官方文档:http://docs.mongodb.org/manual/tutorial/ 1.下载软件 http://www.mongodb.org/downloads 2.解压 解压后进入bin目 ...